diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2021-01-15 15:48:59 +0100 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2021-01-18 13:21:15 +0100 |
commit | b0add5bf2f56c2afc8bdf27ccbb153414617250b (patch) | |
tree | 4c3687f122b4b76bb90b8d5aeea52cacf2921d33 /src/entrypoint | |
parent | 9f7088fd7f0aac84b565f8a9494bf9de4bab85ea (diff) |
QtEntryPoint: Fix linking Release against RelWithDebInfo with MSVC
To be able to link a Release user project against a RelWithDebInfo Qt we
set several IMPORTED_*_RELEASE properties in
the *AdditionalTargetInfo.cmake file of each Qt module.
The EntryPoint module however is a bit special as it is an
INTERFACE_LIBRARY linking publicly against a static
library (EntryPointimplementation). Its *AdditionalTargetInfo.cmake file
was almost empty, because qt_internal_export_additional_targets_file was
called before EntryPointImplementation was set up. Also,
qt_internal_add_module, which calls
qt_internal_export_additional_targets_file, does not know that we want
to export the EntryPointImplementation target.
We fix this by telling qt_internal_add_module(EntryPoint) to not
generate the *AdditionalTargetInfo.cmake file and call
qt_internal_export_additional_targets_file later to take the targets
EntryPoint and EntryPointImplementation into consideration.
qt_internal_add_module learned the option NO_ADDITIONAL_TARGET_INFO to
turn off the generation of *AdditionalTargetInfo.cmake files.
Pick-to: 6.0
Fixes: QTBUG-90039
Change-Id: I68ec7125b538a57567035e7adb8dac3b213f95e6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src/entrypoint')
-rw-r--r-- | src/entrypoint/CMakeLists.txt | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/entrypoint/CMakeLists.txt b/src/entrypoint/CMakeLists.txt index f115c4908a..e12ed39544 100644 --- a/src/entrypoint/CMakeLists.txt +++ b/src/entrypoint/CMakeLists.txt @@ -17,6 +17,7 @@ qt_internal_add_module(EntryPoint NO_SYNC_QT NO_MODULE_HEADERS NO_PRIVATE_MODULE + NO_ADDITIONAL_TARGET_INFO ) # We don't need any include paths or default module defines @@ -101,6 +102,13 @@ QT.entrypoint_implementation.module_config = staticlib v2 internal_module set(export_name "${INSTALL_CMAKE_NAMESPACE}EntryPointTargets") qt_install(TARGETS EntryPointImplementation EXPORT ${export_name}) qt_generate_prl_file(EntryPointImplementation "${INSTALL_LIBDIR}") + + set(export_name_prefix "${INSTALL_CMAKE_NAMESPACE}EntryPoint") + qt_path_join(config_install_dir ${QT_CONFIG_INSTALL_DIR} ${export_name_prefix}) + qt_internal_export_additional_targets_file( + TARGETS EntryPoint EntryPointImplementation + EXPORT_NAME_PREFIX ${export_name_prefix} + CONFIG_INSTALL_DIR "${config_install_dir}") endif() # special case end |