From 11599cb3795e02724387db88ff44fa3cf1f628f0 Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Tue, 4 Feb 2025 13:30:36 +0100 Subject: [PATCH] Make -platform linux-clang-libc++ work with icecc It usage of libc++ was never detected if the compiler was explicitly set to a specific clang binary and clang wrapper. Change-Id: I5fd3c84223cafedf06b34afe91d975e71c199e24 Reviewed-by: Alexey Edelev (cherry picked from commit 982fe396e5908a6f1089ba577ed6220d90eaaa95) Reviewed-by: Qt Cherry-pick Bot --- cmake/QtProcessConfigureArgs.cmake | 40 ++++++++++++++---------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/cmake/QtProcessConfigureArgs.cmake b/cmake/QtProcessConfigureArgs.cmake index b6736c4044c..0fadd2ed908 100644 --- a/cmake/QtProcessConfigureArgs.cmake +++ b/cmake/QtProcessConfigureArgs.cmake @@ -871,29 +871,27 @@ function(guess_compiler_from_mkspec) check_whether_to_guess_compiler(guess_c_compiler CC CMAKE_C_COMPILER) check_whether_to_guess_compiler(guess_cxx_compiler CXX CMAKE_CXX_COMPILER) - if(NOT guess_c_compiler AND NOT guess_cxx_compiler) - return() - endif() - string(REGEX MATCH "(^|;)-DQT_QMAKE_TARGET_MKSPEC=\([^;]+\)" m "${cmake_args}") set(mkspec ${CMAKE_MATCH_2}) - set(c_compiler "") - set(cxx_compiler "") - if(mkspec MATCHES "-clang-msvc$") - set(c_compiler "clang-cl") - set(cxx_compiler "clang-cl") - elseif(mkspec MATCHES "-clang(-|$)" AND NOT mkspec MATCHES "android") - set(c_compiler "clang") - set(cxx_compiler "clang++") - elseif(mkspec MATCHES "-msvc(-|$)") - set(c_compiler "cl") - set(cxx_compiler "cl") - endif() - if(guess_c_compiler AND NOT c_compiler STREQUAL "") - push("-DCMAKE_C_COMPILER=${c_compiler}") - endif() - if(guess_cxx_compiler AND NOT cxx_compiler STREQUAL "") - push("-DCMAKE_CXX_COMPILER=${cxx_compiler}") + if(guess_c_compiler OR guess_cxx_compiler) + set(c_compiler "") + set(cxx_compiler "") + if(mkspec MATCHES "-clang-msvc$") + set(c_compiler "clang-cl") + set(cxx_compiler "clang-cl") + elseif(mkspec MATCHES "-clang(-|$)" AND NOT mkspec MATCHES "android") + set(c_compiler "clang") + set(cxx_compiler "clang++") + elseif(mkspec MATCHES "-msvc(-|$)") + set(c_compiler "cl") + set(cxx_compiler "cl") + endif() + if(guess_c_compiler AND NOT c_compiler STREQUAL "") + push("-DCMAKE_C_COMPILER=${c_compiler}") + endif() + if(guess_cxx_compiler AND NOT cxx_compiler STREQUAL "") + push("-DCMAKE_CXX_COMPILER=${cxx_compiler}") + endif() endif() if(mkspec MATCHES "-libc\\+\\+$") push("-DFEATURE_stdlib_libcpp=ON")