From e425a2a4b8dd469920eede57e9c4094523aa9ad7 Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Wed, 20 Jan 2021 19:34:26 +0100 Subject: Tune compilation flags to reduce libraries size Add '_WINDLL' definition for the MSVC compilers family. Check the 'FEATURE_optimize_size' value before replacing compiler flags in the qt_internal_add_optimize_full_flags function. This is required, because Qt::Core and Qt::Gui modules lost their ability to shrink, when selecting the appropriate build type or features. Fixes: QTBUG-89952 Change-Id: I982c25ea84e4793b4006ead0ee516b3f3eb2a054 Reviewed-by: Joerg Bornemann --- cmake/QtFlagHandlingHelpers.cmake | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'cmake/QtFlagHandlingHelpers.cmake') diff --git a/cmake/QtFlagHandlingHelpers.cmake b/cmake/QtFlagHandlingHelpers.cmake index 51491da46e..a18d3ac89a 100644 --- a/cmake/QtFlagHandlingHelpers.cmake +++ b/cmake/QtFlagHandlingHelpers.cmake @@ -593,13 +593,22 @@ function(qt_internal_add_optimize_full_flags) "" ${ARGN}) + # Assume that FEATURE_optimize_full has higher priority. But if FEATURE_optimize_full is OFF, + # flags are set by FEATURE_optimize_size should remain unchanged. + if(QT_FEATURE_optimize_size AND NOT QT_FEATURE_optimize_full) + return() + endif() + set(args "") if(arg_IN_CACHE) list(APPEND args IN_CACHE) endif() qt_internal_get_enabled_languages_for_flag_manipulation(enabled_languages) - set(configs RELEASE RELWITHDEBINFO MINSIZEREL) + set(configs RELEASE RELWITHDEBINFO) + if(QT_FEATURE_optimize_full) # Assume that FEATURE_optimize_full has higher priority. + list(APPEND configs MINSIZEREL) + endif() qt_internal_remove_known_optimization_flags(${args} CONFIGS ${configs}) -- cgit v1.2.3