summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorrikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220>2011-01-23 20:47:58 +0000
committerrikky <rikky@ffa7fe5e-494d-0410-b361-a75ebd5db220>2011-01-23 20:47:58 +0000
commitab1bc5b5ba466acee87267f39c77a04d75709f3a (patch)
tree582c1c9e255502a394008f345bbfe394c82eb83d /cmake
parent61a326166b890d225b19cf0ad3b0008c78c757f2 (diff)
downloadnavit-svn-ab1bc5b5ba466acee87267f39c77a04d75709f3a.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.cmake35
1 files changed, 22 insertions, 13 deletions
diff --git a/cmake/navit_macros.cmake b/cmake/navit_macros.cmake
index 5c40eaaa..08647e2a 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 )