Bläddra i källkod

Set plugin install rules for target and include files

Location of both  plugin libraries and headers can be changed by
configuring CTK with CTK_INSTALL_PLUGIN_DIR and CTK_INSTALL_PLUGIN_INCLUDE_DIR.

Plugin headers will always be installed into:

    CTK_INSTALL_PLUGIN_INCLUDE_DIR/<Plugin-SymbolicName>

where <Plugin-SymbolicName> is of the form "org.commontk.foo".

See #65 and #158
Jean-Christophe Fillion-Robin 11 år sedan
förälder
incheckning
ea3563fb98
4 ändrade filer med 26 tillägg och 15 borttagningar
  1. 2 0
      CMake/CTKConfig.cmake.in
  2. 16 15
      CMake/ctkMacroBuildPlugin.cmake
  3. 6 0
      CMakeLists.txt
  4. 2 0
      SuperBuild.cmake

+ 2 - 0
CMake/CTKConfig.cmake.in

@@ -175,6 +175,8 @@ set(CMAKE_MODULE_PATH
 SET(CTK_INSTALL_BIN_DIR "@CTK_INSTALL_BIN_DIR@")
 SET(CTK_INSTALL_BIN_DIR "@CTK_INSTALL_BIN_DIR@")
 SET(CTK_INSTALL_INCLUDE_DIR "@CTK_INSTALL_INCLUDE_DIR@")
 SET(CTK_INSTALL_INCLUDE_DIR "@CTK_INSTALL_INCLUDE_DIR@")
 SET(CTK_INSTALL_LIB_DIR "@CTK_INSTALL_LIB_DIR@")
 SET(CTK_INSTALL_LIB_DIR "@CTK_INSTALL_LIB_DIR@")
+SET(CTK_INSTALL_PLUGIN_INCLUDE_DIR "@CTK_INSTALL_PLUGIN_INCLUDE_DIR@")
+SET(CTK_INSTALL_PLUGIN_DIR "@CTK_INSTALL_PLUGIN_DIR@")
 SET(CTK_INSTALL_QTPLUGIN_DIR "@CTK_INSTALL_QTPLUGIN_DIR@")
 SET(CTK_INSTALL_QTPLUGIN_DIR "@CTK_INSTALL_QTPLUGIN_DIR@")
 #SET(CTK_INSTALL_PACKAGE_DIR "@CTK_INSTALL_PACKAGE_DIR@")
 #SET(CTK_INSTALL_PACKAGE_DIR "@CTK_INSTALL_PACKAGE_DIR@")
 
 

+ 16 - 15
CMake/ctkMacroBuildPlugin.cmake

@@ -311,14 +311,13 @@ macro(ctkMacroBuildPlugin)
     PREFIX "lib"
     PREFIX "lib"
     )
     )
 
 
-  # Note: The plugin may be installed in some other location ???
-  # Install rules
-# if(MY_LIBRARY_TYPE STREQUAL "SHARED")
-# install(TARGETS ${lib_name}
-# RUNTIME DESTINATION ${CTK_INSTALL_LIB_DIR} COMPONENT RuntimePlugins
-# LIBRARY DESTINATION ${CTK_INSTALL_LIB_DIR} COMPONENT RuntimePlugins
-# ARCHIVE DESTINATION ${CTK_INSTALL_LIB_DIR} COMPONENT Development)
-# endif()
+  if(NOT MY_TEST_PLUGIN)
+    # Install rules
+    install(TARGETS ${lib_name} EXPORT CTKExports
+      RUNTIME DESTINATION ${CTK_INSTALL_PLUGIN_DIR} COMPONENT RuntimePlugins
+      LIBRARY DESTINATION ${CTK_INSTALL_PLUGIN_DIR} COMPONENT RuntimePlugins
+      ARCHIVE DESTINATION ${CTK_INSTALL_PLUGIN_DIR} COMPONENT Development)
+  endif()
 
 
   set(my_libs
   set(my_libs
     ${MY_TARGET_LIBRARIES}
     ${MY_TARGET_LIBRARIES}
@@ -334,13 +333,15 @@ macro(ctkMacroBuildPlugin)
     set(${CMAKE_PROJECT_NAME}_PLUGIN_LIBRARIES ${${CMAKE_PROJECT_NAME}_PLUGIN_LIBRARIES} ${lib_name} CACHE INTERNAL "CTK plugins" FORCE)
     set(${CMAKE_PROJECT_NAME}_PLUGIN_LIBRARIES ${${CMAKE_PROJECT_NAME}_PLUGIN_LIBRARIES} ${lib_name} CACHE INTERNAL "CTK plugins" FORCE)
   endif()
   endif()
 
 
-  # Install headers
-  #file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/*.tpp")
-  #install(FILES
-  # ${headers}
-  # ${dynamicHeaders}
-  # DESTINATION ${CTK_INSTALL_INCLUDE_DIR} COMPONENT Development
-  # )
+  if(NOT MY_TEST_PLUGIN)
+    # Install headers
+    file(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/*.tpp")
+    install(FILES
+      ${headers}
+      ${dynamicHeaders}
+      DESTINATION ${CTK_INSTALL_PLUGIN_INCLUDE_DIR}/${Plugin-SymbolicName} COMPONENT Development
+      )
+  endif()
 
 
 endmacro()
 endmacro()
 
 

+ 6 - 0
CMakeLists.txt

@@ -142,12 +142,18 @@ endif()
 if(NOT CTK_INSTALL_LIB_DIR)
 if(NOT CTK_INSTALL_LIB_DIR)
   set(CTK_INSTALL_LIB_DIR "lib/ctk-${CTK_MAJOR_VERSION}.${CTK_MINOR_VERSION}")
   set(CTK_INSTALL_LIB_DIR "lib/ctk-${CTK_MAJOR_VERSION}.${CTK_MINOR_VERSION}")
 endif()
 endif()
+if(NOT CTK_INSTALL_PLUGIN_DIR)
+  set(CTK_INSTALL_PLUGIN_DIR "lib/ctk-${CTK_MAJOR_VERSION}.${CTK_MINOR_VERSION}/plugins")
+endif()
 if(NOT CTK_INSTALL_CMAKE_DIR)
 if(NOT CTK_INSTALL_CMAKE_DIR)
   set(CTK_INSTALL_CMAKE_DIR "lib/ctk-${CTK_MAJOR_VERSION}.${CTK_MINOR_VERSION}/CMake")
   set(CTK_INSTALL_CMAKE_DIR "lib/ctk-${CTK_MAJOR_VERSION}.${CTK_MINOR_VERSION}/CMake")
 endif()
 endif()
 if(NOT CTK_INSTALL_INCLUDE_DIR)
 if(NOT CTK_INSTALL_INCLUDE_DIR)
   set(CTK_INSTALL_INCLUDE_DIR "include/ctk-${CTK_MAJOR_VERSION}.${CTK_MINOR_VERSION}")
   set(CTK_INSTALL_INCLUDE_DIR "include/ctk-${CTK_MAJOR_VERSION}.${CTK_MINOR_VERSION}")
 endif()
 endif()
+if(NOT CTK_INSTALL_PLUGIN_INCLUDE_DIR)
+  set(CTK_INSTALL_PLUGIN_INCLUDE_DIR ${CTK_INSTALL_INCLUDE_DIR})
+endif()
 if(NOT CTK_INSTALL_DOC_DIR)
 if(NOT CTK_INSTALL_DOC_DIR)
   set(CTK_INSTALL_DOC_DIR "doc")
   set(CTK_INSTALL_DOC_DIR "doc")
 endif()
 endif()

+ 2 - 0
SuperBuild.cmake

@@ -167,7 +167,9 @@ ExternalProject_Add(${proj}
     -DCTK_CMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CTK_CMAKE_RUNTIME_OUTPUT_DIRECTORY}
     -DCTK_CMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${CTK_CMAKE_RUNTIME_OUTPUT_DIRECTORY}
     -DCTK_INSTALL_BIN_DIR:STRING=${CTK_INSTALL_BIN_DIR}
     -DCTK_INSTALL_BIN_DIR:STRING=${CTK_INSTALL_BIN_DIR}
     -DCTK_INSTALL_LIB_DIR:STRING=${CTK_INSTALL_LIB_DIR}
     -DCTK_INSTALL_LIB_DIR:STRING=${CTK_INSTALL_LIB_DIR}
+    -DCTK_INSTALL_PLUGIN_DIR:STRING=${CTK_INSTALL_PLUGIN_DIR}
     -DCTK_INSTALL_INCLUDE_DIR:STRING=${CTK_INSTALL_INCLUDE_DIR}
     -DCTK_INSTALL_INCLUDE_DIR:STRING=${CTK_INSTALL_INCLUDE_DIR}
+    -DCTK_INSTALL_PLUGIN_INCLUDE_DIR:STRING=${CTK_INSTALL_PLUGIN_INCLUDE_DIR}
     -DCTK_INSTALL_DOC_DIR:STRING=${CTK_INSTALL_DOC_DIR}
     -DCTK_INSTALL_DOC_DIR:STRING=${CTK_INSTALL_DOC_DIR}
     -DCTK_EXTERNAL_LIBRARY_DIRS:STRING=${CTK_EXTERNAL_LIBRARY_DIRS}
     -DCTK_EXTERNAL_LIBRARY_DIRS:STRING=${CTK_EXTERNAL_LIBRARY_DIRS}
     -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
     -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}