X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=CMakeLists.txt;h=c2d795c846fde527ec8b323aef6d935047668b02;hb=89f86ebc45c0f0375d55b4c56bf95dca6891426f;hp=be945731044fe6c2e7eeefd0a4a175642edc9108;hpb=f6faf961e8151ae67bd5d8f2e65b337d61ef0bf9;p=xonotic%2Fnetradiant.git diff --git a/CMakeLists.txt b/CMakeLists.txt index be945731..c2d795c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,6 +70,7 @@ option(BUILD_DAEMONMAP "Build daemonmap navigation mesh generator" ${DEFAULT_BUI option(DOWNLOAD_GAMEPACKS "Download game packs" ON) option(USE_WERROR "Build with -Werror -pedantic-errors" OFF) option(FHS_INSTALL "Install according to Filesystem Hierarchy Standard" OFF) +option(FHS_INSTALL_ABSOLUTE "Install using absolute paths (requires FHS_INSTALL)" OFF) set(BUILD_BINARIES OFF CACHE INTERNAL "...") if (BUILD_RADIANT OR BUILD_TOOLS) @@ -77,7 +78,8 @@ if (BUILD_RADIANT OR BUILD_TOOLS) endif () if (BUILD_BINARIES) - if (WIN32 OR APPLE + if (WIN32 + OR APPLE OR "${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD" ) set(BUNDLING_SUPPORTED ON) @@ -94,7 +96,11 @@ if (BUILD_BINARIES) endif () if (BUNDLE_LIBRARIES AND BUNDLING_SUPPORTED) - set(FHS_INSTALL OFF CACHE PATH "Disabled because of BUNDLE_LIBRARIES" FORCE) + set(FHS_INSTALL OFF CACHE PATH "Disabled because of BUNDLE_LIBRARIES is enabled" FORCE) + endif () + + if (NOT FHS_INSTALL AND FHS_INSTALL_ABSOLUTE) + set(FHS_INSTALL_ABSOLUTE OFF CACHE PATH "Disabled because of FHS_INSTALL is disabled" FORCE) endif () endif () @@ -121,19 +127,28 @@ add_definitions(-DRADIANT_BASENAME="${RADIANT_BASENAME}") set(RADIANT_BIN_DIR ${FINAL_INSTALL_PREFIX} CACHE INTERNAL "...") set(RADIANT_LIB_DIR ${FINAL_INSTALL_PREFIX}/lib CACHE INTERNAL "...") set(RADIANT_ADDONS_DIR ${FINAL_INSTALL_PREFIX} CACHE INTERNAL "...") -set(RADIANT_ETC_DIR ${FINAL_INSTALL_PREFIX}/etc CACHE INTERNAL "...") set(RADIANT_SHARE_DIR ${FINAL_INSTALL_PREFIX}/share CACHE INTERNAL "...") set(RADIANT_DATA_DIR ${FINAL_INSTALL_PREFIX} CACHE INTERNAL "...") -if (FHS_INSTALL AND NOT BUNDLE_LIBRARIES) +if (FHS_INSTALL) + add_definitions(-DRADIANT_FHS_INSTALL='ON') + set(RADIANT_BIN_DIR ${FINAL_INSTALL_PREFIX}/bin) - set(RADIANT_LIB_DIR ${FINAL_INSTALL_PREFIX}/lib) + set(RADIANT_LIB_DIR ${FINAL_INSTALL_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}) set(RADIANT_ADDONS_DIR ${RADIANT_LIB_DIR}/${RADIANT_BASENAME}) - set(RADIANT_ETC_DIR ${FINAL_INSTALL_PREFIX}/etc) set(RADIANT_SHARE_DIR ${FINAL_INSTALL_PREFIX}/share) set(RADIANT_DATA_DIR ${RADIANT_SHARE_DIR}/${RADIANT_BASENAME}) + set(RADIANT_LIB_DIR ${FINAL_INSTALL_PREFIX}/lib/${CMAKE_LIBRARY_ARCHITECTURE}) + + if (FHS_INSTALL_ABSOLUTE) + add_definitions(-DRADIANT_ADDONS_DIR="${RADIANT_ADDONS_DIR}") + add_definitions(-DRADIANT_DATA_DIR="${RADIANT_DATA_DIR}") + else () + add_definitions(-DRADIANT_LIB_ARCH="${CMAKE_LIBRARY_ARCHITECTURE}") + endif () endif () + set(GAMEPACKS_DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/download CACHE PATH "Where to store downloaded game packs") #----------------------------------------------------------------------- @@ -148,19 +163,21 @@ set(RADIANT_VERSION "${RADIANT_VERSION_MAJOR}.${RADIANT_VERSION_MINOR}.${RADIANT set(RADIANT_ABOUTMSG "Custom build" CACHE STRING "About message") -find_package(Git REQUIRED) +set(RADIANT_VERSION_STRING "${RADIANT_VERSION}n") -execute_process( - COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE GIT_VERSION - OUTPUT_STRIP_TRAILING_WHITESPACE -) +if (NOT DEFINED GIT_VERSION) + find_package(Git REQUIRED) -set(RADIANT_VERSION_STRING "${RADIANT_VERSION}n") + execute_process( + COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_VERSION + OUTPUT_STRIP_TRAILING_WHITESPACE + ) -if (GIT_VERSION) - set(RADIANT_VERSION_STRING "${RADIANT_VERSION_STRING}-git-${GIT_VERSION}") + if (GIT_VERSION) + set(RADIANT_VERSION_STRING "${RADIANT_VERSION_STRING}-git-${GIT_VERSION}") + endif () endif () message(STATUS "Building ${PROJECT_NAME} ${RADIANT_VERSION_STRING} ${RADIANT_ABOUTMSG}")