diff options
author | Christophe Giboudeaux <christophe@krop.fr> | 2021-01-13 09:19:32 +0100 |
---|---|---|
committer | Christophe Giboudeaux <christophe@krop.fr> | 2021-01-13 17:03:12 +0000 |
commit | 9563be2870b85309e163db950fefcb9200cac6f4 (patch) | |
tree | 9e382bb64aaa3b8434763d1ab2e97e41decf357e /cmake/QtModuleHelpers.cmake | |
parent | 7582f7b03d52103c5299812aed8705d21d4f8b9b (diff) |
CMake: Use -ffat-lto-objects for static libraries with ltcg and GCC
CMake <= 3.19 adds the '-fno-fat-lto-objects' compiler flag
unconditionally when CMAKE_INTERPROCEDURAL_OPTIMIZATION is enabled.
This is fine for shared libraries but static ones need the opposite
compiler flag.
Task-number: QTBUG-89426
Pick-to: 6.0
Change-Id: Ie5f48178803a270f6d94408f7a8e85d379eb123c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
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 cc755c9d00..806f97b8e1 100644 --- a/cmake/QtModuleHelpers.cmake +++ b/cmake/QtModuleHelpers.cmake @@ -82,6 +82,14 @@ function(qt_internal_add_module target) endif() endif() + if(FEATURE_ltcg AND GCC AND is_static_lib) + # CMake <= 3.19 appends -fno-fat-lto-objects for all library types if + # CMAKE_INTERPROCEDURAL_OPTIMIZATION is enabled. Static libraries need + # the opposite compiler option. + # (https://gitlab.kitware.com/cmake/cmake/-/issues/21696) + target_compile_options(${target} PRIVATE -ffat-lto-objects) + endif() + if (ANDROID) qt_android_apply_arch_suffix("${target}") endif() |