summaryrefslogtreecommitdiffstats
path: root/cmake/QtPostProcess.cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2019-08-19 15:07:22 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2019-08-23 09:26:16 +0000
commit54aeb4ccd77e5660474ae282d153c30fffda596e (patch)
tree6c9ea4910abfa1ca4fae0f76c538a5c59ffef7ab /cmake/QtPostProcess.cmake
parent02074bf345995def88d4e658af7d709101c94110 (diff)
Add support for Qt header_modules aka a header only INTERFACE library
Also add support for modules that have no private module counterpart. Both are needed for Designer's QtUiPlugin in qttools. Change-Id: Ia7e9d8837140e1de5cd59e196b4f63481ab68298 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Qt CMake Build Bot
Diffstat (limited to 'cmake/QtPostProcess.cmake')
-rw-r--r--cmake/QtPostProcess.cmake22
1 files changed, 19 insertions, 3 deletions
diff --git a/cmake/QtPostProcess.cmake b/cmake/QtPostProcess.cmake
index f91fdaef63..8a09efe35a 100644
--- a/cmake/QtPostProcess.cmake
+++ b/cmake/QtPostProcess.cmake
@@ -54,7 +54,16 @@ macro(qt_collect_third_party_deps)
endmacro()
function(qt_internal_create_module_depends_file target)
- get_target_property(depends "${target}" LINK_LIBRARIES)
+ get_target_property(target_type "${target}" TYPE)
+ if(target_type STREQUAL "INTERFACE_LIBRARY")
+ set(arg_HEADER_MODULE ON)
+ else()
+ set(arg_HEADER_MODULE OFF)
+ endif()
+
+ if(NOT arg_HEADER_MODULE)
+ get_target_property(depends "${target}" LINK_LIBRARIES)
+ endif()
get_target_property(public_depends "${target}" INTERFACE_LINK_LIBRARIES)
# Used for collecting Qt module dependencies that should be find_package()'d in
@@ -62,7 +71,9 @@ function(qt_internal_create_module_depends_file target)
get_target_property(target_deps "${target}" _qt_target_deps)
set(target_deps_seen "")
- get_target_property(extra_depends "${target}" QT_EXTRA_PACKAGE_DEPENDENCIES)
+ if(NOT arg_HEADER_MODULE)
+ get_target_property(extra_depends "${target}" QT_EXTRA_PACKAGE_DEPENDENCIES)
+ endif()
if(NOT extra_depends STREQUAL "${extra_depends}-NOTFOUND")
list(APPEND target_deps ${extra_depends})
endif()
@@ -140,7 +151,7 @@ function(qt_internal_create_module_depends_file target)
list(REMOVE_DUPLICATES qtdeps)
endif()
- get_target_property(hasModuleHeaders "${target}" MODULE_HAS_HEADERS)
+ get_target_property(hasModuleHeaders "${target}" INTERFACE_MODULE_HAS_HEADERS)
if (${hasModuleHeaders})
qt_internal_write_depends_file("${target}" ${qtdeps})
endif()
@@ -260,6 +271,11 @@ function(qt_internal_create_plugins_files)
message("Generating Plugins files for ${repo_known_modules}...")
foreach (QT_MODULE ${repo_known_modules})
+ get_target_property(target_type "${QT_MODULE}" TYPE)
+ if(target_type STREQUAL "INTERFACE_LIBRARY")
+ # No plugins are provided by a header only module.
+ continue()
+ endif()
qt_path_join(config_build_dir ${QT_CONFIG_BUILD_DIR} ${INSTALL_CMAKE_NAMESPACE}${QT_MODULE})
qt_path_join(config_install_dir ${QT_CONFIG_INSTALL_DIR} ${INSTALL_CMAKE_NAMESPACE}${QT_MODULE})
set(QT_MODULE_PLUGIN_INCLUDES "")