From 22af26890f997ecf9b04eb1ab429c86016630ffa Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Fri, 19 May 2023 15:48:47 +0200 Subject: [PATCH] Fix Clang platform detecting mechanism CMake not necessarly sets MSVC or MINGW when detecting Clang compiler. We should rely on CMAKE_CXX_COMPILER_FRONTEND_VARIANT instead when detecting Clang platform. Fixes: QTBUG-113630 Change-Id: I8c14939ddc0839ddf2b3419392aa843deeef4bb5 Reviewed-by: Amir Masoud Abdol Reviewed-by: Alexandru Croitor Reviewed-by: Qt CI Bot (cherry picked from commit 5cf79c2b9b196b3915d8babc46724f400806e64e) Reviewed-by: Qt Cherry-pick Bot --- cmake/QtBuild.cmake | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index 7c57629b769..b5a7575e6e6 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -269,21 +269,21 @@ if(WIN32) if(CMAKE_SIZEOF_VOID_P EQUAL 8) list(APPEND QT_DEFAULT_PLATFORM_DEFINITIONS WIN64 _WIN64) endif() - if(MSVC) - if (CLANG) + + if(CLANG) + if(CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC" OR MSVC) set(QT_DEFAULT_MKSPEC win32-clang-msvc) - elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") + elseif(CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "GNU" OR MINGW) + set(QT_DEFAULT_MKSPEC win32-clang-g++) + endif() + elseif(MSVC) + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") set(QT_DEFAULT_MKSPEC win32-arm64-msvc) else() set(QT_DEFAULT_MKSPEC win32-msvc) endif() - elseif(CLANG AND MINGW) - set(QT_DEFAULT_MKSPEC win32-clang-g++) elseif(MINGW) set(QT_DEFAULT_MKSPEC win32-g++) - endif() - - if (MINGW) list(APPEND QT_DEFAULT_PLATFORM_DEFINITIONS MINGW_HAS_SECURE_API=1) endif() elseif(LINUX)