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 2d4a40f93fd3f0fd31110ef7d19a12fc56c00967

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>
(cherry picked from commit d68486547aaf05994f39786f8527bcb454c6db3f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Alexandru Croitor 2021-03-19 17:15:06 +01:00 committed by Qt Cherry-pick Bot
parent 7b9fc295ee
commit eb21e8f7d9

View File

@ -605,29 +605,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