diff options
author | rikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2011-01-23 20:47:58 +0000 |
---|---|---|
committer | rikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2011-01-23 20:47:58 +0000 |
commit | 1d42ea3813c150d18859ef2fd93b664e5b1ec531 (patch) | |
tree | 582c1c9e255502a394008f345bbfe394c82eb83d /cmake | |
parent | 738636f3dfb2ab8953ecb0bf2536c4d2715a2600 (diff) | |
download | navit-1d42ea3813c150d18859ef2fd93b664e5b1ec531.tar.gz |
Fix:Build/cmake:Make user defined settings survive a cmake cache refresh
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@3951 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/navit_macros.cmake | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/cmake/navit_macros.cmake b/cmake/navit_macros.cmake index 5c40eaaa2..08647e2ac 100644 --- a/cmake/navit_macros.cmake +++ b/cmake/navit_macros.cmake @@ -1,14 +1,26 @@ +macro(internal_set VARIABLE REASON) + if (NOT DEFINED ${VARIABLE}) + set(${VARIABLE} ${ARGN}) + set(${VARIABLE}_REASON ${REASON} CACHE STRING "reason") + else() + set(${VARIABLE}_REASON "User defined" CACHE STRING "reason") + endif() +endmacro() + macro(set_with_reason VARIABLE REASON ENABLE) - set(${VARIABLE} ${ENABLE}) - set(${VARIABLE}_REASON ${REASON}) - string(REPLACE "/" "_" VARIABLE_NAMES ${VARIABLE}) - set(${VARIABLE_NAMES}_LIBS ${ARGN}) + if (DEFINED ${VARIABLE}_REASON AND NOT ${VARIABLE}_REASON STREQUAL "User defined") + set(${VARIABLE} ${ENABLE}) + set(${VARIABLE}_REASON ${REASON}) + string(REPLACE "/" "_" VARIABLE_NAMES ${VARIABLE}) + set(${VARIABLE_NAMES}_LIBS ${ARGN}) + else() + message("Do not change user defined settings for ${VARIABLE}") + endif() endmacro() macro(add_feature FEATURE REASON ENABLE) list(APPEND ALL_FEATURES ${FEATURE}) - set(${FEATURE} ${ENABLE}) - set(${FEATURE}_REASON ${REASON}) + internal_set(${FEATURE} ${REASON} ${ENABLE}) endmacro() macro(cfg_feature FEATURE REASON ENABLE) @@ -16,18 +28,15 @@ macro(cfg_feature FEATURE REASON ENABLE) set(${FEATURE}_REASON ${REASON}) endmacro() -# modules may be linked static, or shared for import at runtime -macro(add_module MODULE_PATH REASON) +macro(add_module MODULE_PATH REASON ENABLE) list(APPEND ALL_MODULES ${MODULE_PATH}) - set(${MODULE_PATH} ${ARGN}) - set(${MODULE_PATH}_REASON ${REASON}) + internal_set(${MODULE_PATH} ${REASON} ${ENABLE}) endmacro() # plugins are always linked static -macro(add_plugin PLUGIN_PATH REASON) +macro(add_plugin PLUGIN_PATH REASON ENABLE) list(APPEND ALL_PLUGINS ${PLUGIN_PATH}) - set(${PLUGIN_PATH} ${ARGN}) - set(${PLUGIN_PATH}_REASON ${REASON}) + internal_set(${PLUGIN_PATH} ${REASON} ${ENABLE}) endmacro() macro(module_add_library MODULE_NAME ) |