From e820ff83012b5fe3057f5c6dba1e2163d39e7161 Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Thu, 25 Apr 2024 20:13:10 +0200 Subject: [PATCH] Make version_tagging the full-functional feature This feature allows to explicitly disable the version tagging for Qt libraries and have the precise feature-based guarding in C++ code. Task-number: QTBUG-124346 Change-Id: If109adb2f6a998c58825a2449cfb936ea278b2ad Reviewed-by: Thiago Macieira Reviewed-by: Alexandru Croitor --- configure.cmake | 8 ++++++++ src/corelib/CMakeLists.txt | 2 +- src/corelib/global/qglobal.h | 3 ++- src/corelib/global/qversiontagging.h | 2 ++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/configure.cmake b/configure.cmake index d062bce8b86..b91260015f2 100644 --- a/configure.cmake +++ b/configure.cmake @@ -203,8 +203,16 @@ if(NOT QT_CONFIGURE_RUNNING) qt_evaluate_feature(use_gold_linker) qt_evaluate_feature(use_lld_linker) qt_evaluate_feature(use_mold_linker) + + qt_run_linker_version_script_support() endif() +qt_feature("version_tagging" + PUBLIC + AUTODETECT TRUE + CONDITION TEST_ld_version_script OR APPLE OR WIN32 +) +qt_feature_definition("version_tagging" "QT_NO_VERSION_TAGGING" NEGATE) #### Tests diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index e1fb0d7e393..ce3def3cd64 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -456,7 +456,7 @@ endif() set(core_version_tagging_files global/qversiontagging.cpp) qt_internal_extend_target(Core - CONDITION TEST_ld_version_script OR APPLE OR WIN32 + CONDITION QT_FEATURE_version_tagging SOURCES ${core_version_tagging_files} ) diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 1009057badf..2d70e82370d 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -67,8 +67,9 @@ #include #include #include +#if QT_CONFIG(version_tagging) #include - +#endif #endif /* __cplusplus */ #endif /* QGLOBAL_H */ diff --git a/src/corelib/global/qversiontagging.h b/src/corelib/global/qversiontagging.h index 965d53e88fb..fa2dd237286 100644 --- a/src/corelib/global/qversiontagging.h +++ b/src/corelib/global/qversiontagging.h @@ -13,6 +13,8 @@ #include #include +QT_REQUIRE_CONFIG(version_tagging); + QT_BEGIN_NAMESPACE /*