CMake: add support for Intel's LLVM-based compiler
This includes a few cleanups to our .cmake files where it was easier to combine existing sections of Clang / AppleClang that no longer needed to be distinct. icpx could be replaced with a shell script: exec `basename $0`/clang++ --intel "$@" tst_qnumeric is not passing FAIL! : tst_QNumeric::classifyF() Compared values are not the same Actual (qFpClassify(tiny / two)): 2 Expected (FP_SUBNORMAL) : 3 Loc: [/home/tjmaciei/src/qt/qt6-icx/qtbase/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp(344)] FAIL! : tst_QNumeric::classifyD() Compared values are not the same Actual (qFpClassify(tiny / two)): 2 Expected (FP_SUBNORMAL) : 3 Loc: [/home/tjmaciei/src/qt/qt6-icx/qtbase/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp(344)] FAIL! : tst_QNumeric::floatDistance(denormal) Compared values are not the same Actual (qFloatDistance(from, stop)): 0 Expected (expectedDistance) : 4194304 Loc: [/home/tjmaciei/src/qt/qt6-icx/qtbase/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp(408)] FAIL! : tst_QNumeric::doubleDistance(denormal) Compared values are not the same Actual (qFloatDistance(from, stop)): 0 Expected (expectedDistance) : 2251799813685248 Loc: [/home/tjmaciei/src/qt/qt6-icx/qtbase/tests/auto/corelib/global/qnumeric/tst_qnumeric.cpp(408)] P Change-Id: Icb2516126f674e7b8bb3fffd16ad59431e8c3379 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
2630c15a3d
commit
63d80c7c4b
@ -292,6 +292,8 @@ function(qt_configure_process_add_summary_build_type_and_config)
|
||||
set(message "Compiler: ")
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
||||
string(APPEND message "clang (Apple)")
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
string(APPEND message "clang (Intel LLVM)")
|
||||
elseif(CLANG)
|
||||
string(APPEND message "clang")
|
||||
elseif(ICC)
|
||||
|
@ -153,9 +153,7 @@ function(qt_internal_set_exceptions_flags target exceptions_on)
|
||||
set(_defs "QT_NO_EXCEPTIONS")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||
set(_flag "/wd4530" "/wd4577")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
set(_flag "-fno-exceptions")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|AppleClang|InteLLLVM")
|
||||
set(_flag "-fno-exceptions")
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
if (MSVC)
|
||||
|
@ -97,7 +97,7 @@ function(qt_internal_add_headers_clean_target
|
||||
"$<${compile_flags_exist_genex}:$<JOIN:${target_compile_flags_genex},;>>")
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU"
|
||||
OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"
|
||||
OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang|IntelLLVM"
|
||||
OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
|
||||
# Turn on some extra warnings not found in -Wall -Wextra.
|
||||
|
||||
|
@ -1,17 +1,8 @@
|
||||
|
||||
function(qt_internal_set_warnings_are_errors_flags target)
|
||||
set(flags "")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND NOT MSVC)
|
||||
# Regular clang 3.0+
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "3.0.0")
|
||||
list(APPEND flags -Werror -Wno-error=\#warnings -Wno-error=deprecated-declarations)
|
||||
endif()
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
|
||||
# using AppleClang
|
||||
# Apple clang 4.0+
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "4.0.0" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL "9.2")
|
||||
list(APPEND flags -Werror -Wno-error=\#warnings -Wno-error=deprecated-declarations)
|
||||
endif()
|
||||
if (CLANG AND NOT MSVC)
|
||||
list(APPEND flags -Werror -Wno-error=\#warnings -Wno-error=deprecated-declarations)
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
# using GCC
|
||||
list(APPEND flags -Werror -Wno-error=cpp -Wno-error=deprecated-declarations)
|
||||
@ -297,15 +288,7 @@ qt_auto_detect_implicit_sse2()
|
||||
function(qt_auto_detect_fpmath)
|
||||
# fpmath configuration adjustment in qt_module.prf
|
||||
set(fpmath_supported FALSE)
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "3.4")
|
||||
set(fpmath_supported TRUE)
|
||||
endif()
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "5.1")
|
||||
set(fpmath_supported TRUE)
|
||||
endif()
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang|GNU|IntelLLVM")
|
||||
set(fpmath_supported TRUE)
|
||||
endif()
|
||||
if(fpmath_supported AND TEST_architecture_arch STREQUAL "i386" AND __implicit_sse2_for_qt_modules_enabled)
|
||||
|
@ -30,9 +30,10 @@ qt_set01(UIKIT APPLE AND (IOS OR TVOS OR WATCHOS))
|
||||
qt_set01(MACOS APPLE AND NOT UIKIT)
|
||||
|
||||
qt_set01(GCC CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
qt_set01(CLANG CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
qt_set01(CLANG CMAKE_CXX_COMPILER_ID MATCHES "Clang|IntelLLVM")
|
||||
qt_set01(APPLECLANG CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
|
||||
qt_set01(ICC CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
||||
qt_set01(IntelLLVM CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
|
||||
qt_set01(QCC CMAKE_CXX_COMPILER_ID STREQUAL "QCC") # CMP0047
|
||||
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
|
@ -712,6 +712,10 @@ QT_PATCH_VERSION = ${PROJECT_VERSION_PATCH}
|
||||
set(compiler_version_major_var_name "QT_APPLE_CLANG_MAJOR_VERSION")
|
||||
set(compiler_version_minor_var_name "QT_APPLE_CLANG_MINOR_VERSION")
|
||||
set(compiler_version_patch_var_name "QT_APPLE_CLANG_PATCH_VERSION")
|
||||
elseif(IntelLLVM)
|
||||
set(compiler_version_major_var_name "QT_INTELLLVM_MAJOR_VERSION")
|
||||
set(compiler_version_minor_var_name "QT_INTELLLVM_MINOR_VERSION")
|
||||
set(compiler_version_patch_var_name "QT_INTELLLVM_PATCH_VERSION")
|
||||
elseif(CLANG)
|
||||
set(compiler_version_major_var_name "QT_CLANG_MAJOR_VERSION")
|
||||
set(compiler_version_minor_var_name "QT_CLANG_MINOR_VERSION")
|
||||
|
Loading…
x
Reference in New Issue
Block a user