ソースを参照

ENH: Added ctkMacroBuildQtDesignerPlugin.cmake

This macro behaves similarly to ctkMacroBuildLib expect that:
 -> RUNTIME, LIBRARY and ARCHIVE DESTINATION are respectively ${CTK_INSTALL_BIN_DIR}/designer
, ${CTK_INSTALL_LIB_DIR}/designer and ${CTK_INSTALL_LIB_DIR}/designer
 -> The target properties also include:
      - COMPILE_FLAGS "-DQT_PLUGIN"
      - LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/designer"

In case CMAKE_CFG_INTDIR is not equal to ".", the plugin file are copied back
into designer directory, the current configuration type name is also appended to the
plugin name.
Jean-Christophe Fillion-Robin 15 年 前
コミット
f9290dd4cf
共有2 個のファイルを変更した34 個の追加1 個の削除を含む
  1. 33 1
      CMake/ctkMacroBuildQtDesignerPlugin.cmake
  2. 1 0
      CMakeLists.txt

+ 33 - 1
CMake/ctkMacroBuildQtDesignerPlugin.cmake

@@ -74,7 +74,11 @@ MACRO(ctkMacroBuildQtDesignerPlugin)
     )
 
   # Apply properties to the library target.
-  SET_TARGET_PROPERTIES(${lib_name}  PROPERTIES COMPILE_FLAGS "-DQT_PLUGIN")
+  SET_TARGET_PROPERTIES(${lib_name}  PROPERTIES
+    ${CTK_LIBRARY_PROPERTIES}
+    COMPILE_FLAGS "-DQT_PLUGIN"
+    LIBRARY_OUTPUT_DIRECTORY "${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/designer"
+    )
   
   SET(my_libs
     ${MY_TARGET_LIBRARIES}
@@ -82,5 +86,33 @@ MACRO(ctkMacroBuildQtDesignerPlugin)
     )
   TARGET_LINK_LIBRARIES(${lib_name} ${my_libs})
 
+  # Install the library
+  INSTALL(TARGETS ${lib_name}
+    RUNTIME DESTINATION ${CTK_INSTALL_BIN_DIR}/designer COMPONENT Runtime
+    LIBRARY DESTINATION ${CTK_INSTALL_LIB_DIR}/designer COMPONENT Runtime
+    ARCHIVE DESTINATION ${CTK_INSTALL_LIB_DIR}/designer COMPONENT Development)
+
+  # Install headers - Are headers required ?
+  #FILE(GLOB headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h")
+  #INSTALL(FILES 
+  #  ${headers}
+  #  DESTINATION ${CTK_INSTALL_INCLUDE_DIR} COMPONENT Development
+  #  )
+
+  
+  # Since QtDesigner expects plugin to be directly located under the
+  # directory 'designer', let's copy them. 
+
+  IF(NOT CMAKE_CFG_INTDIR STREQUAL ".")
+    GET_TARGET_PROPERTY(FILE_PATH ${lib_name} LOCATION)
+    GET_TARGET_PROPERTY(DIR_PATH ${lib_name} LIBRARY_OUTPUT_DIRECTORY)
+  
+    ADD_CUSTOM_COMMAND(
+      TARGET ${lib_name}
+      POST_BUILD
+      COMMAND ${CMAKE_COMMAND} -E copy ${FILE_PATH} ${DIR_PATH}/../designer/${CMAKE_SHARED_LIBRARY_PREFIX}${lib_name}${CMAKE_BUILD_TYPE}${CMAKE_SHARED_LIBRARY_SUFFIX}
+      )
+  ENDIF()
+
 ENDMACRO()
 

+ 1 - 0
CMakeLists.txt

@@ -74,6 +74,7 @@ INCLUDE(CMake/ctkMacroListFilter.cmake)
 INCLUDE(CMake/ctkMacroBuildLib.cmake)
 INCLUDE(CMake/ctkMacroBuildPlugin.cmake)
 INCLUDE(CMake/ctkMacroBuildApp.cmake)
+INCLUDE(CMake/ctkMacroBuildQtDesignerPlugin.cmake)
 INCLUDE(CMake/ctkMacroSetupQt.cmake)
 INCLUDE(CMake/ctkMacroTargetLibraries.cmake) # Import multiple macros
 INCLUDE(CMake/ctkMacroAddCtkLibraryOptions.cmake)