diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-11-30 19:28:00 +0100 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-12-08 09:13:03 +0100 |
commit | b3576164f0aedf8d528c3724332a36b0fb6d05e0 (patch) | |
tree | 8dfdbcb6c1468309ce8ab990773806022430096c /cmake/Qt3rdPartyLibraryHelpers.cmake | |
parent | 9d831491334e75f8ccc691edaeb173af81ab80ac (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.
Pick-to: 6.0
Change-Id: Ied90ef2f6d77a61a093d393cfdf94c400284c4f0
Reviewed-by: Craig Scott <craig.scott@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'cmake/Qt3rdPartyLibraryHelpers.cmake')
-rw-r--r-- | cmake/Qt3rdPartyLibraryHelpers.cmake | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cmake/Qt3rdPartyLibraryHelpers.cmake b/cmake/Qt3rdPartyLibraryHelpers.cmake index f91a7628e7..c784039556 100644 --- a/cmake/Qt3rdPartyLibraryHelpers.cmake +++ b/cmake/Qt3rdPartyLibraryHelpers.cmake @@ -9,11 +9,14 @@ function(qt_internal_add_cmake_library target) ${ARGN} ) + set(is_static_lib 0) + ### Define Targets: if(${arg_INTERFACE}) add_library("${target}" INTERFACE) elseif(${arg_STATIC} OR (${arg_MODULE} AND NOT BUILD_SHARED_LIBS)) add_library("${target}" STATIC) + set(is_static_lib 1) elseif(${arg_SHARED}) add_library("${target}" SHARED) qt_internal_apply_win_prefix_and_suffix("${target}") @@ -32,6 +35,9 @@ function(qt_internal_add_cmake_library target) qt_internal_apply_win_prefix_and_suffix("${target}") else() add_library("${target}") + if(NOT BUILD_SHARED_LIBS) + set(is_static_lib 1) + endif() endif() if (NOT arg_ARCHIVE_INSTALL_DIRECTORY AND arg_INSTALL_DIRECTORY) @@ -43,6 +49,11 @@ function(qt_internal_add_cmake_library target) endif() qt_skip_warnings_are_errors_when_repo_unclean("${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() + if (arg_INSTALL_DIRECTORY) set(install_arguments ARCHIVE_INSTALL_DIRECTORY ${arg_ARCHIVE_INSTALL_DIRECTORY} @@ -93,11 +104,14 @@ function(qt_internal_add_3rdparty_library target) ${ARGN} ) + set(is_static_lib 0) + ### Define Targets: if(${arg_INTERFACE}) add_library("${target}" INTERFACE) elseif(${arg_STATIC} OR (${arg_MODULE} AND NOT BUILD_SHARED_LIBS)) add_library("${target}" STATIC) + set(is_static_lib 1) elseif(${arg_SHARED}) add_library("${target}" SHARED) elseif(${arg_MODULE}) @@ -114,6 +128,9 @@ function(qt_internal_add_3rdparty_library target) endif() else() add_library("${target}") + if(NOT BUILD_SHARED_LIBS) + set(is_static_lib 1) + endif() endif() if(NOT arg_INTERFACE) @@ -128,6 +145,11 @@ function(qt_internal_add_3rdparty_library target) qt_internal_add_target_aliases(${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() + if (ANDROID) qt_android_apply_arch_suffix("${target}") endif() |