浏览代码

Merge branch 'fix-multiple-configure-and-passing-of-options'

* fix-multiple-configure-and-passing-of-options:
  Ensure ctk option are considered as superbuild candidate variable.
  Fix condition used to unset DICOMApplicationHosting top level option
Jean-Christophe Fillion-Robin 11 年之前
父节点
当前提交
508db802c7
共有 3 个文件被更改,包括 13 次插入5 次删除
  1. 10 3
      CMake/ctkMacroCheckExternalProjectDependency.cmake
  2. 2 1
      CMake/ctkMacroOptionUtils.cmake
  3. 1 1
      CMakeLists.txt

+ 10 - 3
CMake/ctkMacroCheckExternalProjectDependency.cmake

@@ -182,9 +182,16 @@ function(_sb_cmakevar_to_cmakearg cmake_varname_and_type cmake_arg_var has_cfg_i
   _sb_extract_varname_and_vartype(${cmake_varname_and_type} _varname _vartype)
 
   set(_var_value "${${_varname}}")
-  get_property(_value_set_in_cache CACHE ${_varname} PROPERTY VALUE SET)
-  if(_value_set_in_cache)
-    get_property(_var_value CACHE ${_varname} PROPERTY VALUE)
+
+  set(_consider_cache_value 1)
+  if(DEFINED ${_varname}_SKIPCACHEVALUE AND ${_varname}_SKIPCACHEVALUE)
+    set(_consider_cache_value 0)
+  endif()
+  if(_consider_cache_value)
+    get_property(_value_set_in_cache CACHE ${_varname} PROPERTY VALUE SET)
+    if(_value_set_in_cache)
+      get_property(_var_value CACHE ${_varname} PROPERTY VALUE)
+    endif()
   endif()
 
   set(_has_cfg_intdir FALSE)

+ 2 - 1
CMake/ctkMacroOptionUtils.cmake

@@ -18,7 +18,6 @@ endfunction()
 macro(ctk_option option_prefix name doc default)
   option(${option_prefix}_${name} ${doc} ${default})
   mark_as_advanced(${option_prefix}_${name})
-  mark_as_superbuild(${option_prefix}_${name})
   list(APPEND ${option_prefix}S ${name})
   set(_logical_expr ${ARGN})
   if(_logical_expr AND NOT ${option_prefix}_${name})
@@ -31,6 +30,8 @@ macro(ctk_option option_prefix name doc default)
       message(STATUS "Enabling [${option_prefix}_${name}] because of [${enabling_msg}] evaluates to True")
     endif()
   endif()
+  set(${option_prefix}_${name}_SKIPCACHEVALUE 1)
+  mark_as_superbuild(${option_prefix}_${name})
 endmacro()
 
 macro(ctk_lib_option name doc default)

+ 1 - 1
CMakeLists.txt

@@ -708,7 +708,7 @@ ctk_enable_option(DICOM "Enable default DICOM support" OFF
 # host and/or hosted application. This will not enable any example plugins
 # or executables (enable CTK_ENABLE_EXAMPLES for that).
 ctk_enable_option(DICOMApplicationHosting "Enable DICOM Part 19 Application Hosting support" OFF
-                  CTK_PLUGIN_org.commontk.dah.host AND CTK_PLUGIN_org.commontk.dah.app)
+                  CTK_PLUGIN_org.commontk.dah.host AND CTK_PLUGIN_org.commontk.dah.hostedapp)
 
 # The CTK Qt Widgets. This will enable the Qt Widget library only.
 # It might trigger the enabling of other widget libraries in combination