diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-08-19 15:07:22 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-08-23 09:26:16 +0000 |
commit | 54aeb4ccd77e5660474ae282d153c30fffda596e (patch) | |
tree | 6c9ea4910abfa1ca4fae0f76c538a5c59ffef7ab /cmake/QtPostProcess.cmake | |
parent | 02074bf345995def88d4e658af7d709101c94110 (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.cmake | 22 |
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 "") |