diff --git a/Applications/ctkSimplePythonShell/Python/CMakeLists.txt b/Applications/ctkSimplePythonShell/Python/CMakeLists.txt index 41ee4d16..f8c69966 100644 --- a/Applications/ctkSimplePythonShell/Python/CMakeLists.txt +++ b/Applications/ctkSimplePythonShell/Python/CMakeLists.txt @@ -12,6 +12,7 @@ ctkMacroCompilePythonScript( SCRIPTS "${KIT_PYTHON_SCRIPTS}" RESOURCES "${KIT_PYTHON_RESOURCES}" DESTINATION_DIR ${CTK_BINARY_DIR}/bin/Python - INSTALL_DIR ${CTK_INSTALL_BIN_DIR} + INSTALL_DIR ${CTK_INSTALL_PYTHON_DIR} + NO_INSTALL_SUBDIR ) diff --git a/CMake/CTKConfig.cmake.in b/CMake/CTKConfig.cmake.in index dc1eca3c..6b1db136 100644 --- a/CMake/CTKConfig.cmake.in +++ b/CMake/CTKConfig.cmake.in @@ -5,6 +5,12 @@ # This file is configured by CTK and used by the UseCTK.cmake module # to load CTK's settings for an external project. +# Import CTK targets +if(NOT TARGET CTKCore) + find_package(Eigen3 REQUIRED) + find_package(GTest REQUIRED) + find_package(ITK REQUIRED) +endif() @PACKAGE_INIT@ diff --git a/CMake/LastConfigureStep/CTKGenerateCTKConfig.cmake b/CMake/LastConfigureStep/CTKGenerateCTKConfig.cmake index 879225be..37e4a466 100644 --- a/CMake/LastConfigureStep/CTKGenerateCTKConfig.cmake +++ b/CMake/LastConfigureStep/CTKGenerateCTKConfig.cmake @@ -65,7 +65,7 @@ if(DEFINED CTK_PLUGIN_${_plugin_output_type}_OUTPUT_DIRECTORY) if(IS_ABSOLUTE "${CTK_PLUGIN_${_plugin_output_type}_OUTPUT_DIRECTORY}") set(CTK_PLUGIN_LIBRARIES_DIR_CONFIG "${CTK_PLUGIN_${_plugin_output_type}_OUTPUT_DIRECTORY}") else() - set(CTK_PLUGIN_LIBRARIES_DIR_CONFIG "${CMAKE_${_plugin_output_type}_OUTPUT_DIRECTORY}/${CTK_PLUGIN_${_plugin_output_type}_OUTPUT_DIRECTORY}") + set(CTK_PLUGIN_LIBRARIES_DIR_CONFIG "${CMAKE_INSTALL_PREFIX}/${CTK_PLUGIN_${_plugin_output_type}_OUTPUT_DIRECTORY}") endif() else() set(CTK_PLUGIN_LIBRARIES_DIR_CONFIG "${CMAKE_${_plugin_output_type}_OUTPUT_DIRECTORY}/plugins") diff --git a/CMake/ctkBlockCheckDependencies.cmake b/CMake/ctkBlockCheckDependencies.cmake index b77c6a2b..67148ed2 100644 --- a/CMake/ctkBlockCheckDependencies.cmake +++ b/CMake/ctkBlockCheckDependencies.cmake @@ -85,7 +85,6 @@ set(${PythonQt_enabling_variable}_FIND_PACKAGE_CMD PythonQt) set(QtSOAP_enabling_variable QtSOAP_LIBRARIES) set(${QtSOAP_enabling_variable}_LIBRARY_DIRS QtSOAP_LIBRARY_DIRS) -set(${QtSOAP_enabling_variable}_INCLUDE_DIRS QtSOAP_INCLUDE_DIRS) set(${QtSOAP_enabling_variable}_FIND_PACKAGE_CMD QtSOAP) set(QtTesting_enabling_variable QtTesting_LIBRARIES) diff --git a/CMake/ctkMacroTargetLibraries.cmake b/CMake/ctkMacroTargetLibraries.cmake index 0a994c0a..383a8f98 100644 --- a/CMake/ctkMacroTargetLibraries.cmake +++ b/CMake/ctkMacroTargetLibraries.cmake @@ -69,6 +69,7 @@ function(ctkFunctionGetTargetLibraries varname) # let's resolve the variable to access its content foreach(target_library ${target_libraries}) if(${target_library} MATCHES "^CTK[a-zA-Z0-9]+$" OR + ${target_library} MATCHES "^Qt5::[a-zA-Z0-9_]+$" OR ${target_library} MATCHES "^org_commontk_[a-zA-Z0-9_]+$") list(APPEND expanded_target_library_list ${target_library}) else() diff --git a/CMakeLists.txt b/CMakeLists.txt index f3075ed9..43a0261b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -247,6 +247,12 @@ foreach(file CMake/ctkFunctionGetGccVersion.cmake CMake/ctkFunctionGetCompilerVisibilityFlags.cmake CMake/ctkFunctionCompileSnippets.cmake + CMake/ctkFunctionGeneratePluginUseFile.cmake + CMake/ctkFunctionExtractPluginTargets.cmake + CMake/ctkFunctionGetAllPluginTargets.cmake + CMake/ctkFunctionGetTargetDependencies.cmake + CMake/ctkFunctionGetPluginDependencies.cmake + CMake/ctkMacroSetupPlugins.cmake ) include(${file}) install(FILES ${file} DESTINATION ${CTK_INSTALL_CMAKE_DIR} COMPONENT Development) @@ -257,6 +263,8 @@ foreach(file CMake/ctkLinkerAsNeededFlagCheck.cmake CMake/ctk_compile_python_scripts.cmake.in CMake/CMakeFindDependencyMacro.cmake + CMake/ctkMacroWrapPythonQtModuleInit.cpp.in + CMake/ctkWrapPythonQt.py ) install(FILES ${file} DESTINATION ${CTK_INSTALL_CMAKE_DIR} COMPONENT Development) endforeach() @@ -992,6 +1000,12 @@ if(BUILD_TESTING) add_subdirectory(CMake/Testing) endif() +# Look for QtSOAP explicitly: it doesn't have cmake files installed +list(REMOVE_ITEM EXTERNAL_TARGETS QtSOAP_LIBRARIES) +find_library(QtSOAP_LIBRARIES NAMES libqtsoap5 qtsoap5 libqtsoap qtsoap5 REQUIRED) +find_file(QtSOAP_HEADER NAMES qtsoap.h HINTS /usr/include/qt5 /usr/include/qt5/QtSoap /usr/include /usr/include/QtSoap REQUIRED) +get_filename_component(QtSOAP_INCLUDE_DIRS ${QtSOAP_HEADER} DIRECTORY) + #----------------------------------------------------------------------------- # Expand variables containing include and library directories for external projects # This relies on the variable EXTERNAL_TARGETS set in ctkMacroValidateBuildOptions @@ -1084,8 +1098,8 @@ set(CTK_CONFIG_H_INCLUDE_DIR ${CTK_BINARY_DIR}) #----------------------------------------------------------------------------- # Set C/CXX Flags # -set(CMAKE_CXX_FLAGS ${CTK_CXX_FLAGS} CACHE STRING "CMake C Flags" FORCE) -set(CMAKE_C_FLAGS ${CTK_C_FLAGS} CACHE STRING "CMake CXX Flags" FORCE) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CTK_CXX_FLAGS}" CACHE STRING "CMake C Flags" FORCE) +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CTK_C_FLAGS}" CACHE STRING "CMake CXX Flags" FORCE) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS_INIT} ${CTK_EXE_LINKER_FLAGS}" CACHE STRING "Flags used when linking executables" FORCE) diff --git a/Libs/CommandLineModules/Backend/FunctionPointer/CMakeLists.txt b/Libs/CommandLineModules/Backend/FunctionPointer/CMakeLists.txt index 3a701024..0d844093 100644 --- a/Libs/CommandLineModules/Backend/FunctionPointer/CMakeLists.txt +++ b/Libs/CommandLineModules/Backend/FunctionPointer/CMakeLists.txt @@ -57,6 +57,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/CommandLineModules/Backend/LocalProcess/CMakeLists.txt b/Libs/CommandLineModules/Backend/LocalProcess/CMakeLists.txt index 88a4d014..0d6df64f 100644 --- a/Libs/CommandLineModules/Backend/LocalProcess/CMakeLists.txt +++ b/Libs/CommandLineModules/Backend/LocalProcess/CMakeLists.txt @@ -56,6 +56,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/CommandLineModules/Backend/XMLChecker/CMakeLists.txt b/Libs/CommandLineModules/Backend/XMLChecker/CMakeLists.txt index 926901ce..c238736b 100644 --- a/Libs/CommandLineModules/Backend/XMLChecker/CMakeLists.txt +++ b/Libs/CommandLineModules/Backend/XMLChecker/CMakeLists.txt @@ -52,6 +52,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/CommandLineModules/Core/CMakeLists.txt b/Libs/CommandLineModules/Core/CMakeLists.txt index ce55df9e..f663e686 100644 --- a/Libs/CommandLineModules/Core/CMakeLists.txt +++ b/Libs/CommandLineModules/Core/CMakeLists.txt @@ -105,6 +105,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/CommandLineModules/Frontend/QtGui/CMakeLists.txt b/Libs/CommandLineModules/Frontend/QtGui/CMakeLists.txt index 3ad6dd1e..65d4a73b 100644 --- a/Libs/CommandLineModules/Frontend/QtGui/CMakeLists.txt +++ b/Libs/CommandLineModules/Frontend/QtGui/CMakeLists.txt @@ -68,6 +68,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/CommandLineModules/Frontend/QtWebKit/CMakeLists.txt b/Libs/CommandLineModules/Frontend/QtWebKit/CMakeLists.txt index 234dd56d..e52eb883 100644 --- a/Libs/CommandLineModules/Frontend/QtWebKit/CMakeLists.txt +++ b/Libs/CommandLineModules/Frontend/QtWebKit/CMakeLists.txt @@ -65,6 +65,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/Core/CMakeLists.txt b/Libs/Core/CMakeLists.txt index 5c6c98b9..07e1e595 100644 --- a/Libs/Core/CMakeLists.txt +++ b/Libs/Core/CMakeLists.txt @@ -166,6 +166,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/DICOM/Core/CMakeLists.txt b/Libs/DICOM/Core/CMakeLists.txt index b817caa4..cbdd05c8 100644 --- a/Libs/DICOM/Core/CMakeLists.txt +++ b/Libs/DICOM/Core/CMakeLists.txt @@ -119,6 +119,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/DICOM/Widgets/CMakeLists.txt b/Libs/DICOM/Widgets/CMakeLists.txt index 7c559271..39d22b42 100644 --- a/Libs/DICOM/Widgets/CMakeLists.txt +++ b/Libs/DICOM/Widgets/CMakeLists.txt @@ -103,6 +103,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/ImageProcessing/ITK/Core/CMakeLists.txt b/Libs/ImageProcessing/ITK/Core/CMakeLists.txt index 856b7f44..3954f60f 100644 --- a/Libs/ImageProcessing/ITK/Core/CMakeLists.txt +++ b/Libs/ImageProcessing/ITK/Core/CMakeLists.txt @@ -63,6 +63,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/PluginFramework/CMakeLists.txt b/Libs/PluginFramework/CMakeLists.txt index 3bea9ed7..295641ba 100644 --- a/Libs/PluginFramework/CMakeLists.txt +++ b/Libs/PluginFramework/CMakeLists.txt @@ -185,6 +185,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/QtTesting/CMakeLists.txt b/Libs/QtTesting/CMakeLists.txt index 2b6582bf..155739a2 100644 --- a/Libs/QtTesting/CMakeLists.txt +++ b/Libs/QtTesting/CMakeLists.txt @@ -170,6 +170,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/Scripting/Python/Core/Python/CMakeLists.txt b/Libs/Scripting/Python/Core/Python/CMakeLists.txt index e8c33769..4ad66a98 100644 --- a/Libs/Scripting/Python/Core/Python/CMakeLists.txt +++ b/Libs/Scripting/Python/Core/Python/CMakeLists.txt @@ -43,6 +43,7 @@ ctkMacroCompilePythonScript( SCRIPTS "${KIT_PYTHON_SCRIPTS}" RESOURCES "${KIT_PYTHON_RESOURCES}" DESTINATION_DIR ${CTK_BINARY_DIR}/bin/Python - INSTALL_DIR ${CTK_INSTALL_BIN_DIR} + INSTALL_DIR ${CTK_INSTALL_PYTHON_DIR} + NO_INSTALL_SUBDIR ) diff --git a/Libs/Scripting/Python/Widgets/CMakeLists.txt b/Libs/Scripting/Python/Widgets/CMakeLists.txt index 1fa0a990..18620eb4 100644 --- a/Libs/Scripting/Python/Widgets/CMakeLists.txt +++ b/Libs/Scripting/Python/Widgets/CMakeLists.txt @@ -47,6 +47,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/Visualization/VTK/Core/CMakeLists.txt b/Libs/Visualization/VTK/Core/CMakeLists.txt index 821ac279..73525522 100644 --- a/Libs/Visualization/VTK/Core/CMakeLists.txt +++ b/Libs/Visualization/VTK/Core/CMakeLists.txt @@ -247,6 +247,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/Visualization/VTK/Widgets/CMakeLists.txt b/Libs/Visualization/VTK/Widgets/CMakeLists.txt index 5c4661fa..43a5da11 100644 --- a/Libs/Visualization/VTK/Widgets/CMakeLists.txt +++ b/Libs/Visualization/VTK/Widgets/CMakeLists.txt @@ -332,6 +332,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/Visualization/VTK/Widgets/target_libraries.cmake b/Libs/Visualization/VTK/Widgets/target_libraries.cmake index 7edaeb80..f9709dcd 100644 --- a/Libs/Visualization/VTK/Widgets/target_libraries.cmake +++ b/Libs/Visualization/VTK/Widgets/target_libraries.cmake @@ -10,5 +10,5 @@ set(target_libraries CTKVisualizationVTKCore ) if (CTK_QT_VERSION VERSION_GREATER "4") - list(APPEND target_libraries Qt5Network_LIBRARIES Qt5WebKit_LIBRARIES) + list(APPEND target_libraries Qt5::Network) endif() diff --git a/Libs/Widgets/CMakeLists.txt b/Libs/Widgets/CMakeLists.txt index c272782f..c8dd4ffa 100644 --- a/Libs/Widgets/CMakeLists.txt +++ b/Libs/Widgets/CMakeLists.txt @@ -462,6 +462,7 @@ if(CTK_WRAP_PYTHONQT_LIGHT) TARGET ${PROJECT_NAME} SRCS ${KIT_SRCS} WRAPPER_LIBRARY_TYPE ${CTK_LIBRARY_MODE} + INSTALL_LIB_DIR ${CTK_INSTALL_PYTHON_DIR} ) endif() diff --git a/Libs/XNAT/Core/target_libraries.cmake b/Libs/XNAT/Core/target_libraries.cmake index 8702af1e..979293a1 100644 --- a/Libs/XNAT/Core/target_libraries.cmake +++ b/Libs/XNAT/Core/target_libraries.cmake @@ -8,5 +8,6 @@ set(target_libraries CTKCore qRestAPI_LIBRARIES QT_LIBRARIES - QtScript + Qt5::Network + Qt5::Script ) diff --git a/Plugins/org.commontk.dah.core/CMakeLists.txt b/Plugins/org.commontk.dah.core/CMakeLists.txt index b2577ea4..dffbe697 100644 --- a/Plugins/org.commontk.dah.core/CMakeLists.txt +++ b/Plugins/org.commontk.dah.core/CMakeLists.txt @@ -61,6 +61,8 @@ ctkMacroBuildPlugin( TARGET_LIBRARIES ${PLUGIN_target_libraries} ) +target_include_directories(${PROJECT_NAME} PUBLIC ${QtSOAP_INCLUDE_DIRS}) + if(BUILD_TESTING) add_subdirectory(Testing) endif() diff --git a/Plugins/org.commontk.dah.hostedapp/CMakeLists.txt b/Plugins/org.commontk.dah.hostedapp/CMakeLists.txt index 574d6a11..695898e5 100644 --- a/Plugins/org.commontk.dah.hostedapp/CMakeLists.txt +++ b/Plugins/org.commontk.dah.hostedapp/CMakeLists.txt @@ -41,3 +41,5 @@ ctkMacroBuildPlugin( RESOURCES ${PLUGIN_resources} TARGET_LIBRARIES ${PLUGIN_target_libraries} ) + +target_include_directories(${PROJECT_NAME} PUBLIC ${QtSOAP_INCLUDE_DIRS}) diff --git a/Plugins/org.commontk.eventadmin/Testing/Cpp/CMakeLists.txt b/Plugins/org.commontk.eventadmin/Testing/Cpp/CMakeLists.txt index 0f067595..f505645c 100644 --- a/Plugins/org.commontk.eventadmin/Testing/Cpp/CMakeLists.txt +++ b/Plugins/org.commontk.eventadmin/Testing/Cpp/CMakeLists.txt @@ -23,6 +23,8 @@ target_link_libraries(${test_executable} ${${test_executable}_DEPENDENCIES} ) +target_include_directories(${test_executable} PRIVATE ${CMAKE_SOURCE_DIR}/Libs/Core) + add_dependencies(${test_executable} ${PROJECT_NAME} ${eventadmin_test}) add_test(${PROJECT_NAME}Tests ${CPP_TEST_PATH}/${test_executable}) @@ -43,6 +45,8 @@ target_link_libraries(${test_executable} ${${test_executable}_DEPENDENCIES} ) +target_include_directories(${test_executable} PRIVATE ${CMAKE_SOURCE_DIR}/Libs/Core) + add_dependencies(${test_executable} ${PROJECT_NAME} ${eventadmin_perftest}) add_test(${PROJECT_NAME}PerfTests ${CPP_TEST_PATH}/${test_executable}) diff --git a/Plugins/org.commontk.metatype/Testing/Cpp/CMakeLists.txt b/Plugins/org.commontk.metatype/Testing/Cpp/CMakeLists.txt index 1d305b61..463725c2 100644 --- a/Plugins/org.commontk.metatype/Testing/Cpp/CMakeLists.txt +++ b/Plugins/org.commontk.metatype/Testing/Cpp/CMakeLists.txt @@ -21,6 +21,8 @@ target_link_libraries(${test_executable} ${${test_executable}_DEPENDENCIES} ) +target_include_directories(${test_executable} PRIVATE ${CMAKE_SOURCE_DIR}/Libs/Core) + add_dependencies(${test_executable} ${PROJECT_NAME} ${metatype_test}) add_test(${PROJECT_NAME}Tests ${CPP_TEST_PATH}/${test_executable})