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>
This commit is contained in:
parent
7582f7b03d
commit
9563be2870
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user