From 9a409295c7cfe74b4fb6b1892f4ff86d4f3c23f3 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 3 Dec 2024 15:51:53 +0100 Subject: [PATCH] CMake: Check minimum MSVC version when configuring Qt MSVC 2019 support was dropped from Qt 6.8. Bail out early if someone wants to build Qt with it. One can opt out of the version check by setting the CMake variable QT_NO_MSVC_MIN_VERSION_CHECK to ON. Pick-to: 6.8 Change-Id: Ia1f5668e1cddcd0c9f0a8d50482fb50d0c5afe7e Reviewed-by: Alexey Edelev --- cmake/QtBuildHelpers.cmake | 2 ++ cmake/QtWindowsHelpers.cmake | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 cmake/QtWindowsHelpers.cmake diff --git a/cmake/QtBuildHelpers.cmake b/cmake/QtBuildHelpers.cmake index 79d47d87378..8da84aa2f45 100644 --- a/cmake/QtBuildHelpers.cmake +++ b/cmake/QtBuildHelpers.cmake @@ -213,6 +213,7 @@ function(qt_internal_get_qt_build_private_helpers out_var) QtToolchainHelpers QtUnityBuildHelpers QtWasmHelpers + QtWindowsHelpers QtWrapperScriptHelpers PARENT_SCOPE ) @@ -449,6 +450,7 @@ macro(qt_internal_setup_build_and_global_variables) qt_internal_check_macos_host_version() _qt_internal_check_apple_sdk_and_xcode_versions() + qt_internal_check_msvc_versions() qt_internal_check_host_path_set_for_cross_compiling() qt_internal_setup_android_platform_specifics() qt_internal_setup_find_host_info_package() diff --git a/cmake/QtWindowsHelpers.cmake b/cmake/QtWindowsHelpers.cmake new file mode 100644 index 00000000000..364536883b7 --- /dev/null +++ b/cmake/QtWindowsHelpers.cmake @@ -0,0 +1,16 @@ +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +function(qt_internal_check_msvc_versions) + if(NOT MSVC OR QT_NO_MSVC_MIN_VERSION_CHECK) + return() + endif() + set(min_msvc_version "1930") + if(MSVC_VERSION VERSION_LESS min_msvc_version) + message(FATAL_ERROR + "Qt requires at least Visual Studio 2019 (MSVC ${min_msvc_version} or newer), " + "you're building against version ${MSVC_VERSION}. " + "You can turn off this version check by setting QT_NO_MSVC_MIN_VERSION_CHECK to ON." + ) + endif() +endfunction()