Browse Source

ENH: Target libraries of CTK target libraries should be listed in target_libraries.cmake. The macro ctkMacroGetTargetLibraries allow to retrieve the content of the file.

For example:

SET(target_libraries
  CTKCore
  CTKDICOMCore
  )

This will be used later to compute library dependencies at superbuild time.
Jean-Christophe Fillion-Robin 15 years ago
parent
commit
2d2234c343

+ 2 - 2
CMake/ctkMacroBuildQtLib.cmake

@@ -3,7 +3,7 @@
 #
 #
 MACRO(CtkMacroBuildQtLib)
-  CtkMacroParseArguments(MYQTLIB
+  ctkMacroParseArguments(MYQTLIB
     "NAME;EXPORT_DIRECTIVE;SRCS;MOC_SRCS;UI_FORMS;INCLUDE_DIRECTORIES;TARGET_LIBRARIES;RESOURCES;LIBRARY_TYPE"
     ""
     ${ARGN}
@@ -96,6 +96,6 @@ MACRO(CtkMacroBuildQtLib)
     DESTINATION ${CTK_INSTALL_INCLUDE_DIR} COMPONENT Development
     )
 
-ENDMACRO(CtkMacroBuildQtLib)
+ENDMACRO()
 
 

+ 1 - 1
CMake/ctkMacroBuildQtPlugin.cmake

@@ -93,6 +93,6 @@ MACRO(CtkMacroBuildQtPlugin)
   #  DESTINATION ${CTK_INSTALL_INCLUDE_DIR} COMPONENT Development
   #  )
 
-ENDMACRO(CtkMacroBuildQtPlugin)
+ENDMACRO()
 
 

+ 17 - 0
CMake/ctkMacroGetTargetLibraries.cmake

@@ -0,0 +1,17 @@
+
+MACRO(ctkMacroGetTargetLibraries varname)
+
+  SET(target_libraries_path ${CMAKE_CURRENT_SOURCE_DIR}/target_libraries.cmake)
+  
+  # Check if "target_libraries.cmake" file exists
+  IF(NOT EXISTS ${target_libraries_path})
+    MESSAGE(FATAL_ERROR "${target_libraries_path} doesn't exists !")
+  ENDIF()
+
+  # Make sure the variable is cleared 
+  SET(target_libraries )
+
+  INCLUDE(${target_libraries_path})
+
+  SET(${varname} ${target_libraries})
+ENDMACRO()

+ 1 - 1
CMake/ctkMacroParseArguments.cmake

@@ -31,4 +31,4 @@ MACRO(CtkMacroParseArguments prefix arg_names option_names)
     ENDIF (is_arg_name GREATER -1)
   ENDFOREACH(arg)
   SET(${prefix}_${current_arg_name} ${current_arg_list})
-ENDMACRO(CtkMacroParseArguments)
+ENDMACRO()

+ 1 - 1
CMake/ctkMacroSetupQt.cmake

@@ -34,4 +34,4 @@ MACRO(ctkMacroSetupQt)
     MESSAGE(FATAL_ERROR "error: Qt4 was not found on your system. You probably need to set the QT_QMAKE_EXECUTABLE variable")
   ENDIF(QT4_FOUND)
 
-ENDMACRO(ctkMacroSetupQt)
+ENDMACRO()

+ 1 - 0
CMakeLists.txt

@@ -47,6 +47,7 @@ INCLUDE(CMake/ctkMacroParseArguments.cmake)
 INCLUDE(CMake/ctkMacroBuildQtLib.cmake)
 INCLUDE(CMake/ctkMacroBuildQtPlugin.cmake)
 INCLUDE(CMake/ctkMacroSetupQt.cmake)
+INCLUDE(CMake/ctkMacroGetTargetLibraries.cmake)
 
 #-----------------------------------------------------------------------------
 # Testing

+ 3 - 4
Libs/Core/CMakeLists.txt

@@ -28,11 +28,10 @@ SET(KIT_UI_FORMS
 SET(KIT_resources
 )
 
-# Additional Target libraries
-SET(KIT_target_libraries
-  ${QT_LIBRARIES}
-  )
+# Target libraries - See CMake/ctkMacroGetTargetLibraries.cmake
+ctkMacroGetTargetLibraries(KIT_target_libraries)
 
+# See CMake/ctkMacroBuildQtLib.cmake
 ctkMacroBuildQtLib(
   NAME ${PROJECT_NAME}
   EXPORT_DIRECTIVE ${KIT_export_directive}

+ 9 - 0
Libs/Core/target_libraries.cmake

@@ -0,0 +1,9 @@
+#
+# See CMake/ctkMacroGetTargetLibraries.cmake
+# 
+# This file should list the libraries required to build the current CTK libraries
+#
+
+SET(target_libraries
+  ${QT_LIBRARIES}
+  )

+ 3 - 4
Libs/DICOM/Core/CMakeLists.txt

@@ -33,11 +33,10 @@ SET(KIT_resources
   Resources/dicom.qrc
 )
 
-# Additional Target libraries
-SET(KIT_target_libraries
-  CTKCore
-  )
+# Target libraries - See CMake/ctkMacroGetTargetLibraries.cmake
+ctkMacroGetTargetLibraries(KIT_target_libraries)
 
+# See CMake/ctkMacroBuildQtLib.cmake
 ctkMacroBuildQtLib(
   NAME ${PROJECT_NAME}
   EXPORT_DIRECTIVE ${KIT_export_directive}

+ 9 - 0
Libs/DICOM/Core/target_libraries.cmake

@@ -0,0 +1,9 @@
+#
+# See CMake/ctkMacroGetTargetLibraries.cmake
+# 
+# This file should list the libraries required to build the current CTK libraries
+# 
+
+SET(target_libraries
+  CTKCore
+  )

+ 4 - 6
Libs/DICOM/Widgets/CMakeLists.txt

@@ -35,12 +35,10 @@ SET(KIT_UI_FORMS
 SET(KIT_resources
 )
 
-# Additional Target libraries
-SET(KIT_target_libraries
-  CTKCore
-  CTKDICOMCore
-  )
-
+# Target libraries - See CMake/ctkMacroGetTargetLibraries.cmake
+ctkMacroGetTargetLibraries(KIT_target_libraries)
+  
+# See CMake/ctkMacroBuildQtLib.cmake
 ctkMacroBuildQtLib(
   NAME ${PROJECT_NAME}
   EXPORT_DIRECTIVE ${KIT_export_directive}

+ 10 - 0
Libs/DICOM/Widgets/target_libraries.cmake

@@ -0,0 +1,10 @@
+#
+# See CMake/ctkMacroGetTargetLibraries.cmake
+# 
+# This file should list the libraries required to build the current CTK libraries
+# 
+
+SET(target_libraries
+  CTKCore
+  CTKDICOMCore
+  )

+ 3 - 4
Libs/Widgets/CMakeLists.txt

@@ -29,11 +29,10 @@ SET(KIT_UI_FORMS
 SET(KIT_resources
 )
 
-# Additional Target libraries
-SET(KIT_target_libraries
-  CTKCore
-  )
+# Target libraries - See CMake/ctkMacroGetTargetLibraries.cmake
+ctkMacroGetTargetLibraries(KIT_target_libraries)
 
+# See CMake/ctkMacroBuildQtLib.cmake
 ctkMacroBuildQtLib(
   NAME ${PROJECT_NAME}
   EXPORT_DIRECTIVE ${KIT_export_directive}

+ 9 - 0
Libs/Widgets/target_libraries.cmake

@@ -0,0 +1,9 @@
+#
+# See CMake/ctkMacroGetTargetLibraries.cmake
+# 
+# This file should list the libraries required to build the current CTK libraries
+#
+
+SET(target_libraries
+  CTKCore
+  )