소스 검색

Write a separate "Plugin-Use-File" containing include and lib dirs for plugins.

Sascha Zelzer 14 년 전
부모
커밋
56d64178b8
4개의 변경된 파일60개의 추가작업 그리고 21개의 파일을 삭제
  1. 43 0
      CMake/ctkFunctionGeneratePluginUseFile.cmake
  2. 4 9
      CTKConfig.cmake.in
  3. 8 0
      CTKPluginUseFile.cmake.in
  4. 5 12
      Utilities/LastConfigureStep/CTKGenerateCTKConfig.cmake

+ 43 - 0
CMake/ctkFunctionGeneratePluginUseFile.cmake

@@ -0,0 +1,43 @@
+###########################################################################
+#
+#  Library: CTK
+#
+#  Copyright (c) German Cancer Research Center,
+#    Division of Medical and Biological Informatics
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+#
+###########################################################################
+
+# Write a set of variables containing CTK plugin specific include and library directories
+FUNCTION(ctkFunctionGeneratePluginUseFile filename)
+  IF(COMMAND GetMyTargetLibraries)
+    GetMyTargetLibraries("${CTK_PLUGIN_LIBRARIES}" my_ctk_plugin_libraries)
+  ELSE()
+    SET(my_ctk_plugin_libraries ${CTK_PLUGIN_LIBRARIES})
+  ENDIF()
+
+  SET(CTK_PLUGIN_INCLUDE_DIRS_CONFIG)
+  FOREACH(plugin ${my_ctk_plugin_libraries})
+    SET(${plugin}_INCLUDE_DIRS ${${plugin}_SOURCE_DIR} ${${plugin}_BINARY_DIR})
+    ctkFunctionGetIncludeDirs(${plugin}_INCLUDE_DIRS ${plugin})
+    SET(CTK_PLUGIN_INCLUDE_DIRS_CONFIG "${CTK_PLUGIN_INCLUDE_DIRS_CONFIG}
+SET(${plugin}_INCLUDE_DIRS \"${${plugin}_INCLUDE_DIRS}\")")
+
+    ctkFunctionGetLibraryDirs(${plugin}_LIBRARY_DIRS ${plugin})
+    SET(CTK_PLUGIN_LIBRARY_DIRS_CONFIG "${CTK_PLUGIN_LIBRARY_DIRS_CONFIG}
+SET(${plugin}_LIBRARY_DIRS \"${${plugin}_LIBRARY_DIRS}\")")
+  ENDFOREACH()
+
+  CONFIGURE_FILE("${CTK_CMAKE_DIR}/../CTKPluginUseFile.cmake.in" "${filename}" @ONLY)
+ENDFUNCTION()

+ 4 - 9
CTKConfig.cmake.in

@@ -56,6 +56,7 @@ INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkFunctionExtractOptionNameAndValue.cmake")
 INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkMacroValidateBuildOptions.cmake")
 INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkFunctionGenerateDGraphInput.cmake")
 INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkFunctionGeneratePluginManifest.cmake")
+INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkFunctionGeneratePluginUseFile.cmake")
 INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkMacroGeneratePluginResourceFile.cmake")
 INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkFunctionGetIncludeDirs.cmake")
 INCLUDE("@CTK_CMAKE_DIR_CONFIG@/ctkFunctionGetLibraryDirs.cmake")
@@ -69,12 +70,12 @@ SET(CTK_DGRAPH_EXECUTABLE "@DGraph_EXECUTABLE@")
 # List all libraries
 SET(CTK_LIBRARIES @CTK_LIBRARIES@)
 
-# List all plugins
-SET(CTK_PLUGIN_LIBRARIES @CTK_PLUGIN_LIBRARIES@)
-
 # List all CTK libraries wrapped with PythonQt
 SET(CTK_WRAPPED_LIBRARIES_PYTHONQT @CTK_WRAPPED_LIBRARIES_PYTHONQT@)
 
+# Include CTK Plugin specific variables
+INCLUDE("@CTK_PLUGIN_USE_FILE@")
+
 @CTK_CONFIG_INSTALL_ONLY@
 
 # Library specific include directories
@@ -83,12 +84,6 @@ SET(CTK_WRAPPED_LIBRARIES_PYTHONQT @CTK_WRAPPED_LIBRARIES_PYTHONQT@)
 # Library specific library directories
 @CTK_LIBRARY_LIBRARY_DIRS_CONFIG@
 
-# Plugin specific include directories
-@CTK_PLUGIN_INCLUDE_DIRS_CONFIG@
-
-# Plugin specific library directories
-@CTK_PLUGIN_LIBRARY_DIRS_CONFIG@
-
 # The CTK include file directories.
 SET(CTK_INCLUDE_DIRS "@CTK_BUILD_DIR@;@CTK_INCLUDE_DIRS_CONFIG@")
  

+ 8 - 0
CTKPluginUseFile.cmake.in

@@ -0,0 +1,8 @@
+# List all plugins
+SET(CTK_PLUGIN_LIBRARIES @CTK_PLUGIN_LIBRARIES@)
+
+# Plugin specific include directories
+@CTK_PLUGIN_INCLUDE_DIRS_CONFIG@
+
+# Plugin specific library directories
+@CTK_PLUGIN_LIBRARY_DIRS_CONFIG@

+ 5 - 12
Utilities/LastConfigureStep/CTKGenerateCTKConfig.cmake

@@ -38,6 +38,8 @@
 # one for installation.  The file tells external projects how to use CTK.
 #
 
+INCLUDE(ctkFunctionGeneratePluginUseFile)
+
 # Construct version numbers for CTKConfigVersion.cmake.
 SET(_CTK_VERSION_MAJOR ${CTK_MAJOR_VERSION})
 SET(_CTK_VERSION_MINOR ${CTK_MINOR_VERSION})
@@ -76,18 +78,9 @@ ENDFOREACH()
 # as an external library
 EXPORT(TARGETS ${CTK_TARGETS_TO_EXPORT} FILE ${CTK_SUPERBUILD_BINARY_DIR}/CTKExports.cmake)
 
-# Write a set of variables containing plugin specific include and library directories
-SET(CTK_PLUGIN_INCLUDE_DIRS_CONFIG)
-FOREACH(plugin ${CTK_PLUGIN_LIBRARIES})
-  SET(${plugin}_INCLUDE_DIRS ${${plugin}_SOURCE_DIR} ${${plugin}_BINARY_DIR})
-  ctkFunctionGetIncludeDirs(${plugin}_INCLUDE_DIRS ${plugin})
-  SET(CTK_PLUGIN_INCLUDE_DIRS_CONFIG "${CTK_PLUGIN_INCLUDE_DIRS_CONFIG}
-SET(${plugin}_INCLUDE_DIRS \"${${plugin}_INCLUDE_DIRS}\")")
-  
-  ctkFunctionGetLibraryDirs(${plugin}_LIBRARY_DIRS ${plugin})
-  SET(CTK_PLUGIN_LIBRARY_DIRS_CONFIG "${CTK_PLUGIN_LIBRARY_DIRS_CONFIG}
-SET(${plugin}_LIBRARY_DIRS \"${${plugin}_LIBRARY_DIRS}\")")
-ENDFOREACH()
+# Generate a file containing plugin specific variables
+SET(CTK_PLUGIN_USE_FILE "${CTK_SUPERBUILD_BINARY_DIR}/CTKPluginUseFile.cmake")
+ctkFunctionGeneratePluginUseFile(${CTK_PLUGIN_USE_FILE})
 
 # Write a set of variables containing library specific include and library directories
 SET(CTK_LIBRARY_INCLUDE_DIRS_CONFIG)