瀏覽代碼

Fix mark_as_superbuild when used with cache variable containng a colon

Also added the corresponding test.

Thanks @pieper for reporting the issue and testing.

See #418
Jean-Christophe Fillion-Robin 11 年之前
父節點
當前提交
93829ce983
共有 2 個文件被更改,包括 6 次插入1 次删除
  1. 5 0
      CMake/Testing/SuperBuildTest/CMakeLists.txt
  2. 1 1
      CMake/ctkMacroCheckExternalProjectDependency.cmake

+ 5 - 0
CMake/Testing/SuperBuildTest/CMakeLists.txt

@@ -51,6 +51,9 @@ if(${PROJECT_NAME}_SUPERBUILD)
   #set(MULTIPROJECT_VAR_WITH_LABELS "MultiProjectVarWithLabels")
   #mark_as_superbuild(VARS MULTIPROJECT_VAR_WITH_LABELS PROJECTS ${PROJECT_NAME} LibA LABELS "MULTIPROJECT")
 
+  set(WITHCOLON_VAR "c:/path/to/something" CACHE PATH "Variable with colon")
+  mark_as_superbuild(WITHCOLON_VAR)
+
   # Since LibC depends on LibD, LibD will also be expected to be found on the system
   set(${CMAKE_PROJECT_NAME}_USE_SYSTEM_LibC 1)
 endif()
@@ -114,3 +117,5 @@ check_variable(SuperBuildTest_EP_LABEL_MULTIPROJECT "MULTIPROJECT_VAR_WITH_LABEL
 check_variable(MULTIPROJECT_VAR_WITH_LABELS "MultiProjectVarWithLabels")
 
 check_variable(ALL_PROJECTS_VAR "AllProjectsVar")
+
+check_variable(WITHCOLON_VAR "c:/path/to/something")

+ 1 - 1
CMake/ctkMacroCheckExternalProjectDependency.cmake

@@ -110,7 +110,7 @@ function(mark_as_superbuild)
 
   foreach(var ${_vars})
     set(_type_specified 0)
-    if(${var} MATCHES ":")
+    if(var MATCHES ":")
       set(_type_specified 1)
     endif()
     # XXX Display warning with variable type is also specified for cache variable.