diff --git a/cmake/modules/KatieBuildMacros.cmake b/cmake/modules/KatieBuildMacros.cmake index 699eb38db..bf97a2b46 100644 --- a/cmake/modules/KatieBuildMacros.cmake +++ b/cmake/modules/KatieBuildMacros.cmake @@ -282,6 +282,17 @@ function(KATIE_SETUP_TARGET FORTARGET) set(${FORTARGET}_SOURCES ${ARGN} PARENT_SCOPE) endfunction() +# a function to make a meta target depend on all plugins, the meta target itself is used in the +# tests setup macros to build all plugins before any test so that plugins from the host are not +# used. +# TODO: this is cheap and sub-optimal way of forcing tests depend on all plugins, perhaps with +# plugin and test targets dependencies introspection it can be optimized, e.g. make tests that +# depend on KtNetwork depend on plugins that depend on it too +add_custom_target(plugins_dependant_tests) +function(KATIE_SETUP_PLUGIN FORPLUGIN) + add_dependencies(plugins_dependant_tests ${FORPLUGIN}) +endfunction() + # a macro to ensure that object targets are build with PIC if the target they # are going to be used in (like $) is build with PIC or # PIC has been enabled for all module/library/executable targets. in addition @@ -324,6 +335,7 @@ macro(KATIE_TEST TESTNAME TESTSOURCES) katie_setup_target(${TESTNAME} ${TESTSOURCES} ${ARGN}) add_executable(${TESTNAME} ${${TESTNAME}_SOURCES}) + add_dependencies(${TESTNAME} plugins_dependant_tests) target_link_libraries(${TESTNAME} KtCore KtTest) target_compile_definitions( @@ -346,6 +358,7 @@ macro(KATIE_DBUS_TEST TESTNAME TESTSOURCES) katie_setup_target(${TESTNAME} ${TESTSOURCES} ${ARGN}) add_executable(${TESTNAME} ${${TESTNAME}_SOURCES}) + add_dependencies(${TESTNAME} plugins_dependant_tests) target_link_libraries(${TESTNAME} KtCore KtDBus KtTest) target_compile_definitions( @@ -368,6 +381,7 @@ macro(KATIE_GUI_TEST TESTNAME TESTSOURCES) katie_setup_target(${TESTNAME} ${TESTSOURCES} ${ARGN}) add_executable(${TESTNAME} ${${TESTNAME}_SOURCES}) + add_dependencies(${TESTNAME} plugins_dependant_tests) target_link_libraries(${TESTNAME} KtCore KtGui KtTest) target_compile_definitions( diff --git a/src/plugins/accessible/widgets/CMakeLists.txt b/src/plugins/accessible/widgets/CMakeLists.txt index 5c6e768a7..4453d2f87 100644 --- a/src/plugins/accessible/widgets/CMakeLists.txt +++ b/src/plugins/accessible/widgets/CMakeLists.txt @@ -23,6 +23,8 @@ add_library(qtaccessiblewidgetsplugin MODULE ${qtaccessiblewidgetsplugin_SOURCES target_link_libraries(qtaccessiblewidgetsplugin KtCore KtGui) set_target_properties(qtaccessiblewidgetsplugin PROPERTIES OUTPUT_NAME qtaccessiblewidgets) +katie_setup_plugin(qtaccessiblewidgetsplugin) + install( TARGETS qtaccessiblewidgetsplugin DESTINATION ${KATIE_PLUGINS_PATH}/accessible diff --git a/src/plugins/bearer/connman/CMakeLists.txt b/src/plugins/bearer/connman/CMakeLists.txt index 5010d9604..b43a233bc 100644 --- a/src/plugins/bearer/connman/CMakeLists.txt +++ b/src/plugins/bearer/connman/CMakeLists.txt @@ -24,6 +24,7 @@ target_include_directories(qconnmanbearerplugin PRIVATE ) katie_setup_object(qconnmanbearerplugin sharedbearer) +katie_setup_plugin(qconnmanbearerplugin) install( TARGETS qconnmanbearerplugin diff --git a/src/plugins/bearer/generic/CMakeLists.txt b/src/plugins/bearer/generic/CMakeLists.txt index c13f64f74..c5daf36f0 100644 --- a/src/plugins/bearer/generic/CMakeLists.txt +++ b/src/plugins/bearer/generic/CMakeLists.txt @@ -20,6 +20,7 @@ target_include_directories(qgenericbearerplugin PRIVATE ) katie_setup_object(qgenericbearerplugin sharedbearer) +katie_setup_plugin(qgenericbearerplugin) install( TARGETS qgenericbearerplugin diff --git a/src/plugins/bearer/networkmanager/CMakeLists.txt b/src/plugins/bearer/networkmanager/CMakeLists.txt index 13f011e79..cfca1df79 100644 --- a/src/plugins/bearer/networkmanager/CMakeLists.txt +++ b/src/plugins/bearer/networkmanager/CMakeLists.txt @@ -24,6 +24,7 @@ target_include_directories(qnmbearerplugin PRIVATE ) katie_setup_object(qnmbearerplugin sharedbearer) +katie_setup_plugin(qnmbearerplugin) install( TARGETS qnmbearerplugin diff --git a/src/plugins/designer/qdeclarativeview/CMakeLists.txt b/src/plugins/designer/qdeclarativeview/CMakeLists.txt index 69fbef58b..f665221a4 100644 --- a/src/plugins/designer/qdeclarativeview/CMakeLists.txt +++ b/src/plugins/designer/qdeclarativeview/CMakeLists.txt @@ -12,6 +12,8 @@ add_library(qdeclarativeviewplugin MODULE ${qdeclarativeviewplugin_SOURCES}) target_link_libraries(qdeclarativeviewplugin KtCore KtDeclarative KtDesigner) set_target_properties(qdeclarativeviewplugin PROPERTIES OUTPUT_NAME qdeclarativeview) +katie_setup_plugin(qdeclarativeviewplugin) + install( TARGETS qdeclarativeviewplugin DESTINATION ${KATIE_PLUGINS_PATH}/designer diff --git a/src/plugins/iconengines/svgiconengine/CMakeLists.txt b/src/plugins/iconengines/svgiconengine/CMakeLists.txt index fbd3eac22..f626984d5 100644 --- a/src/plugins/iconengines/svgiconengine/CMakeLists.txt +++ b/src/plugins/iconengines/svgiconengine/CMakeLists.txt @@ -13,6 +13,8 @@ add_library(qsvgiconplugin MODULE ${qsvgiconplugin_SOURCES}) target_link_libraries(qsvgiconplugin KtCore KtGui KtSvg) set_target_properties(qsvgiconplugin PROPERTIES OUTPUT_NAME qsvgicon) +katie_setup_plugin(qsvgiconplugin) + install( TARGETS qsvgiconplugin DESTINATION ${KATIE_PLUGINS_PATH}/iconengines diff --git a/src/plugins/imageformats/gif/CMakeLists.txt b/src/plugins/imageformats/gif/CMakeLists.txt index 0713d8e34..029f0fe14 100644 --- a/src/plugins/imageformats/gif/CMakeLists.txt +++ b/src/plugins/imageformats/gif/CMakeLists.txt @@ -13,6 +13,8 @@ add_library(qgifplugin MODULE ${qgifplugin_SOURCES}) target_link_libraries(qgifplugin KtCore KtGui) set_target_properties(qgifplugin PROPERTIES OUTPUT_NAME qgif) +katie_setup_plugin(qgifplugin) + install( TARGETS qgifplugin DESTINATION ${KATIE_PLUGINS_PATH}/imageformats diff --git a/src/plugins/imageformats/ico/CMakeLists.txt b/src/plugins/imageformats/ico/CMakeLists.txt index b02c9e50a..e8822ad2c 100644 --- a/src/plugins/imageformats/ico/CMakeLists.txt +++ b/src/plugins/imageformats/ico/CMakeLists.txt @@ -13,6 +13,8 @@ add_library(qicoplugin MODULE ${qicoplugin_SOURCES}) target_link_libraries(qicoplugin KtCore KtGui) set_target_properties(qicoplugin PROPERTIES OUTPUT_NAME qico) +katie_setup_plugin(qicoplugin) + install( TARGETS qicoplugin DESTINATION ${KATIE_PLUGINS_PATH}/imageformats diff --git a/src/plugins/imageformats/jpeg/CMakeLists.txt b/src/plugins/imageformats/jpeg/CMakeLists.txt index 9c3e57b05..6da5c8364 100644 --- a/src/plugins/imageformats/jpeg/CMakeLists.txt +++ b/src/plugins/imageformats/jpeg/CMakeLists.txt @@ -15,6 +15,8 @@ add_library(qjpegplugin MODULE ${qjpegplugin_SOURCES}) target_link_libraries(qjpegplugin KtCore KtGui ${JPEG_LIBRARIES}) set_target_properties(qjpegplugin PROPERTIES OUTPUT_NAME qjpeg) +katie_setup_plugin(qjpegplugin) + install( TARGETS qjpegplugin DESTINATION ${KATIE_PLUGINS_PATH}/imageformats diff --git a/src/plugins/imageformats/svg/CMakeLists.txt b/src/plugins/imageformats/svg/CMakeLists.txt index e3a82f4c3..1e92dd932 100644 --- a/src/plugins/imageformats/svg/CMakeLists.txt +++ b/src/plugins/imageformats/svg/CMakeLists.txt @@ -13,6 +13,8 @@ add_library(qsvgplugin MODULE ${qsvgplugin_SOURCES}) target_link_libraries(qsvgplugin KtCore KtGui KtSvg) set_target_properties(qsvgplugin PROPERTIES OUTPUT_NAME qsvg) +katie_setup_plugin(qsvgplugin) + install( TARGETS qsvgplugin DESTINATION ${KATIE_PLUGINS_PATH}/imageformats diff --git a/src/plugins/imageformats/tga/CMakeLists.txt b/src/plugins/imageformats/tga/CMakeLists.txt index 742709ced..5f264a061 100644 --- a/src/plugins/imageformats/tga/CMakeLists.txt +++ b/src/plugins/imageformats/tga/CMakeLists.txt @@ -15,6 +15,8 @@ add_library(qtgaplugin MODULE ${qtgaplugin_SOURCES}) target_link_libraries(qtgaplugin KtCore KtGui) set_target_properties(qtgaplugin PROPERTIES OUTPUT_NAME qtga) +katie_setup_plugin(qtgaplugin) + install( TARGETS qtgaplugin DESTINATION ${KATIE_PLUGINS_PATH}/imageformats diff --git a/src/plugins/imageformats/tiff/CMakeLists.txt b/src/plugins/imageformats/tiff/CMakeLists.txt index 3e731a889..8bc4c9fda 100644 --- a/src/plugins/imageformats/tiff/CMakeLists.txt +++ b/src/plugins/imageformats/tiff/CMakeLists.txt @@ -15,6 +15,8 @@ add_library(qtiffplugin MODULE ${qtiffplugin_SOURCES}) target_link_libraries(qtiffplugin KtCore KtGui ${TIFF_LIBRARIES}) set_target_properties(qtiffplugin PROPERTIES OUTPUT_NAME qtiff) +katie_setup_plugin(qtiffplugin) + install( TARGETS qtiffplugin DESTINATION ${KATIE_PLUGINS_PATH}/imageformats diff --git a/src/plugins/script/qtdbus/CMakeLists.txt b/src/plugins/script/qtdbus/CMakeLists.txt index b9ff16b04..34a646a59 100644 --- a/src/plugins/script/qtdbus/CMakeLists.txt +++ b/src/plugins/script/qtdbus/CMakeLists.txt @@ -12,6 +12,8 @@ add_library(qtscriptdbusplugin MODULE ${qtscriptdbusplugin_SOURCES}) target_link_libraries(qtscriptdbusplugin KtCore KtDBus KtScript) set_target_properties(qtscriptdbusplugin PROPERTIES OUTPUT_NAME qtscriptdbus) +katie_setup_plugin(qtscriptdbusplugin) + install( TARGETS qtscriptdbusplugin DESTINATION ${KATIE_PLUGINS_PATH}/script diff --git a/src/plugins/sqldrivers/mysql/CMakeLists.txt b/src/plugins/sqldrivers/mysql/CMakeLists.txt index ad7048c23..88cde056c 100644 --- a/src/plugins/sqldrivers/mysql/CMakeLists.txt +++ b/src/plugins/sqldrivers/mysql/CMakeLists.txt @@ -15,6 +15,8 @@ add_library(qsqlmysqlplugin MODULE ${qsqlmysqlplugin_SOURCES}) target_link_libraries(qsqlmysqlplugin KtSql ${MYSQL_LIBRARIES}) set_target_properties(qsqlmysqlplugin PROPERTIES OUTPUT_NAME qsqlmysql) +katie_setup_plugin(qsqlmysqlplugin) + install( TARGETS qsqlmysqlplugin DESTINATION ${KATIE_PLUGINS_PATH}/sqldrivers diff --git a/src/plugins/sqldrivers/odbc/CMakeLists.txt b/src/plugins/sqldrivers/odbc/CMakeLists.txt index 6607f4aca..f49a790c4 100644 --- a/src/plugins/sqldrivers/odbc/CMakeLists.txt +++ b/src/plugins/sqldrivers/odbc/CMakeLists.txt @@ -16,6 +16,8 @@ target_link_libraries(qsqlodbcplugin KtSql ${ODBC_LIBRARIES}) set_target_properties(qsqlodbcplugin PROPERTIES OUTPUT_NAME qsqlodbc) target_compile_definitions(qsqlodbcplugin PRIVATE -DUNICODE) +katie_setup_plugin(qsqlodbcplugin) + install( TARGETS qsqlodbcplugin DESTINATION ${KATIE_PLUGINS_PATH}/sqldrivers diff --git a/src/plugins/sqldrivers/psql/CMakeLists.txt b/src/plugins/sqldrivers/psql/CMakeLists.txt index 9e1f3917f..ff0f05a15 100644 --- a/src/plugins/sqldrivers/psql/CMakeLists.txt +++ b/src/plugins/sqldrivers/psql/CMakeLists.txt @@ -15,6 +15,8 @@ add_library(qsqlpsqlplugin MODULE ${qsqlpsqlplugin_SOURCES}) target_link_libraries(qsqlpsqlplugin KtSql ${POSTGRESQL_LIBRARIES}) set_target_properties(qsqlpsqlplugin PROPERTIES OUTPUT_NAME qsqlpsql) +katie_setup_plugin(qsqlpsqlplugin) + install( TARGETS qsqlpsqlplugin DESTINATION ${KATIE_PLUGINS_PATH}/sqldrivers