endif(NOT IMAGE_CONVERTER_XPM)
endif(XPM2PNG)
-foreach(PLUMO ${ALL_PLUGINS} ${ALL_MODULES} ${ALL_FEATURES})
- set(OLDVALUE ${${PLUMO}})
- OPTION(${PLUMO} "Enable/Disable module/plugin/support" ${${PLUMO}})
- if ( (OLDVALUE AND NOT ${PLUMO}) OR (${PLUMO} AND NOT OLDVALUE))
- set(${PLUMO}_REASON "User defined")
- endif()
-endforeach()
set(XSLTS ${XSLTS} CACHE STRING "define a semicolon seperated list of XSLTs to process")
# Plugins
+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)
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 )