From 9879b2e2f8a4c099c95ecec81e4c6c7fd0e236b8 Mon Sep 17 00:00:00 2001 From: DrSlony Date: Wed, 11 Mar 2015 15:09:08 +0100 Subject: [PATCH] Fix to CMake process when the user does not want to use a suffix for the cache and config folders, issues 2427 and 2602 --- AboutThisBuild.cmake | 62 ++++++++++++++++++++++++-------------------- CMakeLists.txt | 3 ++- 2 files changed, 36 insertions(+), 29 deletions(-) diff --git a/AboutThisBuild.cmake b/AboutThisBuild.cmake index c937a259c..330086838 100644 --- a/AboutThisBuild.cmake +++ b/AboutThisBuild.cmake @@ -3,40 +3,46 @@ # If we find ReleaseInfo.cmake we use the info from there and don't need Mercurial to be installed find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH) if (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) - # we look for the hg command in this paths by order of preference - if (WIN32) - find_file(HG_CMD hg.exe HINTS ENV Path PATH_SUFFIXES ../) - elseif (APPLE) - find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") - find_file(HG_CMD hg) - set (SHELL "/bin/bash") - else (WIN32) # Linux - find_file(HG_CMD hg) - set (SHELL "/bin/bash") - endif (WIN32) + # we look for the hg command in this paths by order of preference + if (WIN32) + find_file(HG_CMD hg.exe HINTS ENV Path PATH_SUFFIXES ../) + elseif (APPLE) + find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") + find_file(HG_CMD hg) + set (SHELL "/bin/bash") + else (WIN32) # Linux + find_file(HG_CMD hg) + set (SHELL "/bin/bash") + endif (WIN32) - # Fail if Mercurial is not installed - if (HG_CMD STREQUAL HG_CMD-NOTFOUND) - message(FATAL_ERROR "hg command not found!") - else (HG_CMD STREQUAL HG_CMD-NOTFOUND) - message(STATUS "hg command found: ${HG_CMD}") - endif (HG_CMD STREQUAL HG_CMD-NOTFOUND) + # Fail if Mercurial is not installed + if (HG_CMD STREQUAL HG_CMD-NOTFOUND) + message(FATAL_ERROR "hg command not found!") + else () + message(STATUS "hg command found: ${HG_CMD}") + endif () - execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" branch OUTPUT_VARIABLE HG_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={node|short} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_CHANGESET OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttagdistance} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE) - if (CACHE_NAME_SUFFIX STREQUAL "") - execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE) - endif (CACHE_NAME_SUFFIX STREQUAL "") + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" branch OUTPUT_VARIABLE HG_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={node|short} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_CHANGESET OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttagdistance} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE) + if (NOT DEFINED CACHE_NAME_SUFFIX) + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE) + message(STATUS "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"") + elseif (CACHE_NAME_SUFFIX STREQUAL "latesttag") + execute_process(COMMAND ${HG_CMD} -R "${PROJECT_SOURCE_DIR}" parents --template={latesttag} WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE) + message(STATUS "CACHE_NAME_SUFFIX was \"latesttag\", it is now \"${CACHE_NAME_SUFFIX}\"") + else () + message(STATUS "CACHE_NAME_SUFFIX is \"${CACHE_NAME_SUFFIX}\"") + endif () else (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) - include("${PROJECT_SOURCE_DIR}/ReleaseInfo.cmake") + include("${PROJECT_SOURCE_DIR}/ReleaseInfo.cmake") endif (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) if (VERSION_SUFFIX STREQUAL "") - set (HG_VERSION_SUFFIX "${HG_VERSION}") -else (VERSION_SUFFIX STREQUAL "") - set (HG_VERSION_SUFFIX "${HG_VERSION} ${VERSION_SUFFIX}") + set (HG_VERSION_SUFFIX "${HG_VERSION}") +else () + set (HG_VERSION_SUFFIX "${HG_VERSION} ${VERSION_SUFFIX}") endif () # build version.h from template diff --git a/CMakeLists.txt b/CMakeLists.txt index a9a686b41..36ca8852b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,7 +23,8 @@ endif () message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") -set (CACHE_NAME_SUFFIX "" CACHE STRING "RawTherapee's cache folder suffix (leave empty to use the default suffix, i.e. latesttag)") +# Examples: "" = ~/.config/RawTherapee, "latesttag" = ~/.config/RawTherapee4.2, "_testing" = ~/.config/RawTherapee_testing +set (CACHE_NAME_SUFFIX "" CACHE STRING "RawTherapee's cache folder suffix") # By default, we don't use specific processor target, so PROC_TARGET_NUMBER is set to 0. If can specify other values to select specific # processor targets, which list can be found in ProcessorTargets.cmake.