summaryrefslogtreecommitdiff
path: root/cmake/navit_macros.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/navit_macros.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 )