diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-11-30 19:28:00 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-12-08 13:18:35 +0000 |
commit | d0b1ac0f7125e3eea73aab97a354eb5efc3a4b00 (patch) | |
tree | a9c682952f7787a582a183810c1e4318040445f3 /cmake/QtModuleHelpers.cmake | |
parent | 53a14dfae0594176f644748183bf00cdaa34f4e0 (diff) |
CMake: Disable static plugin imports for non-executable targets
There is no point in generating cpp files containing Q_IMPORT_PLUGIN()
macro calls for non-executable targets like modules, plugins and object
libraries in a static Qt build.
It causes unnecessary compiling of 10+ files for each of those targets.
In a static Qt build, plugin imports should only be done for executables,
tools and applications.
Change-Id: Ied90ef2f6d77a61a093d393cfdf94c400284c4f0
Reviewed-by: Craig Scott <craig.scott@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit b3576164f0aedf8d528c3724332a36b0fb6d05e0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'cmake/QtModuleHelpers.cmake')
-rw-r--r-- | cmake/QtModuleHelpers.cmake | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/cmake/QtModuleHelpers.cmake b/cmake/QtModuleHelpers.cmake index cc353289a4..cc755c9d00 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -31,16 +31,19 @@ function(qt_internal_add_module target) ### Define Targets: set(is_interface_lib 0) set(is_shared_lib 0) + set(is_static_lib 0) if(${arg_HEADER_MODULE}) add_library("${target}" INTERFACE) set(is_interface_lib 1) elseif(${arg_STATIC}) add_library("${target}" STATIC) + set(is_static_lib 1) elseif(${QT_BUILD_SHARED_LIBS}) add_library("${target}" SHARED) set(is_shared_lib 1) else() add_library("${target}" STATIC) + set(is_static_lib 1) endif() set(property_prefix "INTERFACE_") @@ -86,6 +89,11 @@ function(qt_internal_add_module target) qt_skip_warnings_are_errors_when_repo_unclean("${target}") _qt_internal_apply_strict_cpp("${target}") + # No need to compile Q_IMPORT_PLUGIN-containing files for non-executables. + if(is_static_lib) + _qt_internal_disable_static_default_plugins("${target}") + endif() + # Add _private target to link against the private headers: if(NOT ${arg_NO_PRIVATE_MODULE}) set(target_private "${target}Private") |