CMake: Get rid of the Core_versiontagging object library

We don't currently handle object libraries when creating prl files for
static Qt builds, so it's best to compile files as part of the main
Core target.

Use source file COMPILE_OPTIONS to add the -fno-lto flag to the
global/qversiontagging.cpp source file.

Amends 2d4a40f93f

Pick-to: 6.1 6.0
Change-Id: Iac1d37ecb4caa7c9889d44b3a103a9bdafec49f3
Reviewed-by: Christophe Giboudeaux <christophe@krop.fr>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Alexandru Croitor 2021-03-19 17:15:06 +01:00
parent e9e3c09f4b
commit d68486547a

View File

@ -618,29 +618,16 @@ qt_internal_extend_target(Core CONDITION QT_FEATURE_journald
PkgConfig::Libsystemd
)
# special case begin
add_library(Core_versiontagging OBJECT
global/qversiontagging.cpp global/qversiontagging.h
)
set_target_properties(Core_versiontagging PROPERTIES
COMPILE_OPTIONS $<TARGET_PROPERTY:Core,COMPILE_OPTIONS>
COMPILE_DEFINITIONS $<TARGET_PROPERTY:Core,COMPILE_DEFINITIONS>
INCLUDE_DIRECTORIES $<TARGET_PROPERTY:Core,INCLUDE_DIRECTORIES>
)
set(core_version_tagging_files global/qversiontagging.cpp global/qversiontagging.h)
target_sources(Core PRIVATE ${core_version_tagging_files})
# Disable LTO, as the symbols disappear somehow under GCC
# (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200)
if(GCC AND FEATURE_ltcg)
target_compile_options(Core_versiontagging PRIVATE "-fno-lto")
set_source_files_properties(${core_version_tagging_files}
PROPERTIES COMPILE_OPTIONS "-fno-lto")
endif()
qt_internal_extend_target(Core
SOURCES
$<TARGET_OBJECTS:Core_versiontagging>
)
# special case end
qt_internal_extend_target(Core CONDITION UNIX
SOURCES
io/qfilesystemengine_unix.cpp