summaryrefslogtreecommitdiffstats
path: root/cmake/Qt3rdPartyLibraryHelpers.cmake
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-11-30 19:28:00 +0100
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-12-08 09:13:03 +0100
commitb3576164f0aedf8d528c3724332a36b0fb6d05e0 (patch)
tree8dfdbcb6c1468309ce8ab990773806022430096c /cmake/Qt3rdPartyLibraryHelpers.cmake
parent9d831491334e75f8ccc691edaeb173af81ab80ac (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.cmake22
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()