diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2021-10-12 10:39:00 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2021-10-13 12:49:49 -0700 |
commit | 63d80c7c4b23b5802f1f20e6b322ccf4cdff5b12 (patch) | |
tree | b576f6c4d61b540ca6b179d3abe56cc6d06aca8a /cmake | |
parent | 2630c15a3de65d118afd11bbeb349a415a4aa1d0 (diff) |
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>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/QtBuildInformation.cmake | 2 | ||||
-rw-r--r-- | cmake/QtFlagHandlingHelpers.cmake | 4 | ||||
-rw-r--r-- | cmake/QtHeadersClean.cmake | 2 | ||||
-rw-r--r-- | cmake/QtInternalTargets.cmake | 23 | ||||
-rw-r--r-- | cmake/QtPlatformSupport.cmake | 3 | ||||
-rw-r--r-- | cmake/QtPriHelpers.cmake | 4 |
6 files changed, 13 insertions, 25 deletions
diff --git a/cmake/QtBuildInformation.cmake b/cmake/QtBuildInformation.cmake index e09f64e958..81daae5f13 100644 --- a/cmake/QtBuildInformation.cmake +++ b/cmake/QtBuildInformation.cmake @@ -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) diff --git a/cmake/QtFlagHandlingHelpers.cmake b/cmake/QtFlagHandlingHelpers.cmake index dc81a79333..11d6a3933e 100644 --- a/cmake/QtFlagHandlingHelpers.cmake +++ b/cmake/QtFlagHandlingHelpers.cmake @@ -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) diff --git a/cmake/QtHeadersClean.cmake b/cmake/QtHeadersClean.cmake index 7f54926f1a..f2596b4733 100644 --- a/cmake/QtHeadersClean.cmake +++ b/cmake/QtHeadersClean.cmake @@ -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. diff --git a/cmake/QtInternalTargets.cmake b/cmake/QtInternalTargets.cmake index 7cc340d381..7bfa77d2b8 100644 --- a/cmake/QtInternalTargets.cmake +++ b/cmake/QtInternalTargets.cmake @@ -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) diff --git a/cmake/QtPlatformSupport.cmake b/cmake/QtPlatformSupport.cmake index e4c8ca123b..e4a33ab46f 100644 --- a/cmake/QtPlatformSupport.cmake +++ b/cmake/QtPlatformSupport.cmake @@ -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) diff --git a/cmake/QtPriHelpers.cmake b/cmake/QtPriHelpers.cmake index 85767fadbe..ba7322ad03 100644 --- a/cmake/QtPriHelpers.cmake +++ b/cmake/QtPriHelpers.cmake @@ -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") |