Parcourir la source

ExternalProject definition specifies which variable should be passed down to CTK

This minimize the number of edit required each time a new external project
definition is added.

This will also reduce the number of CMake warnings of the form:
The variable, 'XXXX', specified manually, was not used during the generation.
Jean-Christophe Fillion-Robin il y a 14 ans
Parent
commit
654becb68b

+ 2 - 0
CMakeExternals/CTKData.cmake

@@ -29,4 +29,6 @@ IF(BUILD_TESTING)
 	ELSE()
 	  ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DCTKData_DIR:PATH=${CTKData_DIR})
 ENDIF()

+ 2 - 0
CMakeExternals/DCMTK.cmake

@@ -47,6 +47,8 @@ IF(${add_project})
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DDCMTK_DIR:PATH=${DCMTK_DIR})
 
   SET(${DCMTK_enabling_variable}_INCLUDE_DIRS DCMTK_INCLUDE_DIR)
   SET(${DCMTK_enabling_variable}_FIND_PACKAGE_CMD DCMTK)

+ 2 - 0
CMakeExternals/ITK.cmake

@@ -46,6 +46,8 @@ IF(${add_project})
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DITK_DIR:PATH=${ITK_DIR})
 
   SET(${ITK_enabling_variable}_LIBRARY_DIRS ITK_LIBRARY_DIRS)
   SET(${ITK_enabling_variable}_INCLUDE_DIRS ITK_INCLUDE_DIRS)

+ 3 - 0
CMakeExternals/KWStyle.cmake

@@ -32,4 +32,7 @@ IF(CTK_USE_KWSTYLE)
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DCTK_KWSTYLE_EXECUTABLE:FILEPATH=${CTK_KWSTYLE_EXECUTABLE})
+  
 ENDIF()

+ 2 - 0
CMakeExternals/Log4Qt.cmake

@@ -38,6 +38,8 @@ IF(${add_project})
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DLog4Qt_DIR:PATH=${Log4Qt_DIR})
 
   SET(${Log4Qt_enabling_variable}_INCLUDE_DIRS Log4Qt_INCLUDE_DIR)
   SET(${Log4Qt_enabling_variable}_FIND_PACKAGE_CMD Log4Qt)

+ 2 - 0
CMakeExternals/OpenIGTLink.cmake

@@ -35,6 +35,8 @@ IF(${add_project})
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
   
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DOpenIGTLink_DIR:PATH=${OpenIGTLink_DIR})
+  
   SET(${OpenIGTLink_enabling_variable}_LIBRARY_DIRS OpenIGTLink_LIBRARY_DIRS)
   SET(${OpenIGTLink_enabling_variable}_INCLUDE_DIRS OpenIGTLink_INCLUDE_DIRS)
   SET(${OpenIGTLink_enabling_variable}_FIND_PACKAGE_CMD OpenIGTLink)

+ 7 - 0
CMakeExternals/PythonQt.cmake

@@ -63,6 +63,13 @@ IF(${add_project})
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+    
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS 
+    -DPYTHONQT_INSTALL_DIR:PATH=${PYTHONQT_INSTALL_DIR}
+    -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}   # FindPythonInterp expects PYTHON_EXECUTABLE variable to be defined
+    -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}     # FindPythonQt expects PYTHON_INCLUDE_DIR variable to be defined
+    -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}         # FindPythonQt expects PYTHON_LIBRARY variable to be defined
+    )
 
   SET(${PythonQt_enabling_variable}_INCLUDE_DIRS PYTHONQT_INCLUDE_DIR PYTHON_INCLUDE_DIRS)
   SET(${PythonQt_enabling_variable}_FIND_PACKAGE_CMD PythonQt)

+ 3 - 0
CMakeExternals/PythonQtGenerator.cmake

@@ -63,4 +63,7 @@ IF(CTK_WRAP_PYTHONQT_FULL)
     # library output directory to CTK_EXTERNAL_LIBRARY_DIRS
         
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DPYTHONQTGENERATOR_EXECUTABLE:FILEPATH=${PYTHONQTGENERATOR_EXECUTABLE})
+  
 ENDIF()

+ 2 - 0
CMakeExternals/QtMobility.cmake

@@ -98,6 +98,8 @@ IF(${add_project})
     
   # Since the full path of QtMobility library is used, there is not need to add 
   # its corresponding library output directory to CTK_EXTERNAL_LIBRARY_DIRS
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DQtMobility_DIR:PATH=${QtMobility_DIR})
 
   SET(${QtMobility_enabling_variable}_INCLUDE_DIRS QtMobility_INCLUDE_DIRS)
   SET(${QtMobility_enabling_variable}_FIND_PACKAGE_CMD QtMobility)

+ 2 - 0
CMakeExternals/QtSOAP.cmake

@@ -40,6 +40,8 @@ IF(${add_project})
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DQtSOAP_DIR:PATH=${QtSOAP_DIR})
 
   SET(${QtSOAP_enabling_variable}_LIBRARY_DIRS QtSOAP_LIBRARY_DIRS)
   SET(${QtSOAP_enabling_variable}_INCLUDE_DIRS QtSOAP_INCLUDE_DIRS)

+ 2 - 0
CMakeExternals/VTK.cmake

@@ -61,6 +61,8 @@ IF(${add_project} OR CTK_LIB_Scripting/Python/Core_PYTHONQT_USE_VTK)
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DVTK_DIR:PATH=${VTK_DIR})
 
   SET(${VTK_enabling_variable}_LIBRARY_DIRS VTK_LIBRARY_DIRS)
   SET(${VTK_enabling_variable}_INCLUDE_DIRS VTK_INCLUDE_DIRS)

+ 2 - 0
CMakeExternals/XIP.cmake

@@ -34,6 +34,8 @@ IF(${add_project})
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
   
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DXIP_DIR:PATH=${XIP_DIR})
+  
   SET(${XIP_enabling_variable}_INCLUDE_DIRS XIP_LIBRARY_DIRS)
   SET(${XIP_enabling_variable}_INCLUDE_DIRS XIP_INCLUDE_DIRS)
   SET(${XIP_enabling_variable}_FIND_PACKAGE_CMD XIP)

+ 2 - 0
CMakeExternals/ZMQ.cmake

@@ -37,6 +37,8 @@ IF(${add_project})
   ELSE()
     ctkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}")
   ENDIF()
+  
+  LIST(APPEND CTK_SUPERBUILD_EP_ARGS -DZMQ_DIR:PATH=${ZMQ_DIR})
 
   SET(${ZMQ_enabling_variable}_INCLUDE_DIRS ZMQ_LIBRARY_DIRS)
   SET(${ZMQ_enabling_variable}_INCLUDE_DIRS ZMQ_INCLUDE_DIRS)

+ 7 - 16
SuperBuild.cmake

@@ -131,6 +131,12 @@ SET(external_projects
   ITK
   )
 
+# This variable will contain the list of CMake variable specific to each external project 
+# that should passed to CTK.
+# The item of this list should have the following form: -D<EP>_DIR:PATH=${<EP>_DIR}
+# where '<EP>' is an external project name.
+SET(CTK_SUPERBUILD_EP_ARGS)
+
 # Include external projects
 SET(dependency_args )
 FOREACH(p ${external_projects})
@@ -257,22 +263,7 @@ ExternalProject_Add(${proj}
     -DCTK_C_FLAGS:STRING=${CTK_C_FLAGS}
     -DCTK_EXTERNAL_LIBRARY_DIRS:STRING=${CTK_EXTERNAL_LIBRARY_DIRS}
     -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
-    # External projects
-    -DCTKData_DIR:PATH=${CTKData_DIR}
-	  -DZMQ_DIR:PATH=${ZMQ_DIR}                     # FindVTK expects VTK_DIR variable to be defined
-	  -DOpenIGTLink_DIR:PATH=${OpenIGTLink_DIR}     # FindOpenIGTLink expects OpenIGTLink_DIR variable to be defined
-    -DCTK_KWSTYLE_EXECUTABLE:FILEPATH=${CTK_KWSTYLE_EXECUTABLE}
-    -DDCMTK_DIR:PATH=${DCMTK_DIR} # FindDCMTK expects DCMTK_DIR variable to be defined
-    -DVTK_DIR:PATH=${VTK_DIR}     # FindVTK expects VTK_DIR variable to be defined
-    -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}   # FindPythonInterp expects PYTHON_EXECUTABLE variable to be defined
-    -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}     # FindPythonQt expects PYTHON_INCLUDE_DIR variable to be defined
-    -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}         # FindPythonQt expects PYTHON_LIBRARY variable to be defined
-    -DPYTHONQT_INSTALL_DIR:PATH=${PYTHONQT_INSTALL_DIR} # FindPythonQt expects PYTHONQT_INSTALL_DIR variable to be defined
-    -DPYTHONQTGENERATOR_EXECUTABLE:FILEPATH=${PYTHONQTGENERATOR_EXECUTABLE} #FindPythonQtGenerator expects PYTHONQTGENERATOR_EXECUTABLE to be defined
-    -DLog4Qt_DIR:PATH=${Log4Qt_DIR} # FindLog4Qt expects Log4Qt_DIR variable to be defined
-    -DQtSOAP_DIR:PATH=${QtSOAP_DIR} # FindQtSOAP expects QtSOAP_DIR variable to be defined
-    -DQtMobility_DIR:PATH=${QtMobility_DIR}
-    -DITK_DIR:PATH=${ITK_DIR} # FindITK expects ITK_DIR variable to be defined
+    ${CTK_SUPERBUILD_EP_ARGS}
     ${dependency_args}
   SOURCE_DIR ${CTK_SOURCE_DIR}
   BINARY_DIR ${CTK_BINARY_DIR}/CTK-build