From 0edda59c796442ffc18becec025cdf84f974dfeb Mon Sep 17 00:00:00 2001 From: Alexey Rochev Date: Sun, 15 Dec 2024 00:39:28 +0300 Subject: [PATCH] Fix setting QT_DISABLE_DEPRECATED_BEFORE macro --- cmake/CommonOptions.cmake | 25 ++++++++++++++++++++++--- src/rpc/requestrouter.cpp | 4 ++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/cmake/CommonOptions.cmake b/cmake/CommonOptions.cmake index d202c7f9..0d28b770 100644 --- a/cmake/CommonOptions.cmake +++ b/cmake/CommonOptions.cmake @@ -8,10 +8,10 @@ endif() if (TREMOTESF_QT6) set(TREMOTESF_QT_VERSION_MAJOR 6) - set(TREMOTESF_MINIMUM_QT_VERSION 6.6) + set(TREMOTESF_MINIMUM_QT_VERSION 6.6.0) else() set(TREMOTESF_QT_VERSION_MAJOR 5) - set(TREMOTESF_MINIMUM_QT_VERSION 5.15) + set(TREMOTESF_MINIMUM_QT_VERSION 5.15.0) endif() if (UNIX AND NOT APPLE) @@ -32,6 +32,20 @@ if (MSVC AND (NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)) endif() endif() +function(append_qt_disable_deprecated_macro LIST_VAR) + string(REPLACE "." ";" min_qt_version_components "${TREMOTESF_MINIMUM_QT_VERSION}") + list(GET min_qt_version_components 0 major) + list(GET min_qt_version_components 1 minor) + list(GET min_qt_version_components 2 patch) + math(EXPR macro_value "(${major}<<16)|(${minor}<<8)|(${patch})" OUTPUT_FORMAT HEXADECIMAL) + if (TREMOTESF_QT6) + list(APPEND "${LIST_VAR}" "QT_DISABLE_DEPRECATED_UP_TO=${macro_value}") + else() + list(APPEND "${LIST_VAR}" "QT_DISABLE_DEPRECATED_BEFORE=${macro_value}") + endif() + return(PROPAGATE "${LIST_VAR}") +endfunction() + function(set_common_options_on_targets) set( gcc_style_warnings @@ -126,10 +140,15 @@ function(set_common_options_on_targets) set( common_compile_definitions QT_DEPRECATED_WARNINGS - QT_DISABLE_DEPRECATED_BEFORE=0x050e00 QT_MESSAGELOGCONTEXT ) + # QT_DISABLE_DEPRECATED_BEFORE can cause linker errors with static Qt + get_target_property(qt_library_type Qt::Core TYPE) + if (NOT (qt_library_type STREQUAL STATIC_LIBRARY)) + append_qt_disable_deprecated_macro(common_compile_definitions) + endif() + if (WIN32) include("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/WindowsMinimumVersion.cmake") # Minimum supported version, 0x0A00 = Windows 10 diff --git a/src/rpc/requestrouter.cpp b/src/rpc/requestrouter.cpp index f3d85fe3..e825f726 100644 --- a/src/rpc/requestrouter.cpp +++ b/src/rpc/requestrouter.cpp @@ -2,6 +2,10 @@ // // SPDX-License-Identifier: GPL-3.0-or-later +// Needed to access deprecated QSsl::SslProtocol enum values +#undef QT_DISABLE_DEPRECATED_BEFORE +#undef QT_DISABLE_DEPRECATED_UP_TO + #include "requestrouter.h" #include