summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2023-08-15 16:36:00 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2024-01-24 19:21:05 (GMT)
commit8218aed118f3d84b011f8b87385704a8cd603d3d (patch)
treeda41d0437c195082c9ec8527849832bf0aca6d42
parentad50700038ab936c57ab1043f65b7f888ff62612 (diff)
downloadCMake-8218aed118f3d84b011f8b87385704a8cd603d3d.zip
CMake-8218aed118f3d84b011f8b87385704a8cd603d3d.tar.gz
CMake-8218aed118f3d84b011f8b87385704a8cd603d3d.tar.bz2
IntelLLVM: support marking include paths as SYSTEM directories
Also learn how to suppress warnings when possible. See: https://discourse.cmake.org/t/icx-on-windows-supports-external-i/8739
-rw-r--r--Help/release/dev/IntelLLVM-isystem-flag.rst6
-rw-r--r--Modules/Compiler/IntelLLVM.cmake6
2 files changed, 12 insertions, 0 deletions
diff --git a/Help/release/dev/IntelLLVM-isystem-flag.rst b/Help/release/dev/IntelLLVM-isystem-flag.rst
new file mode 100644
index 0000000..bba3d26
--- /dev/null
+++ b/Help/release/dev/IntelLLVM-isystem-flag.rst
@@ -0,0 +1,6 @@
+IntelLLVM-isystem-flag
+----------------------
+
+* The :generator:`Ninja` and :generator:`NMake Makefiles` generators now use
+ the ``-external:I`` flag for system includes when using IntelLLVM as of
+ version 2021.4. The ``-external:W0`` flag is also used as of version 2022.2.
diff --git a/Modules/Compiler/IntelLLVM.cmake b/Modules/Compiler/IntelLLVM.cmake
index f3c0bf4..a58128a 100644
--- a/Modules/Compiler/IntelLLVM.cmake
+++ b/Modules/Compiler/IntelLLVM.cmake
@@ -36,6 +36,12 @@ if(CMAKE_HOST_WIN32)
__compiler_intel_llvm_common(${lang})
set(CMAKE_${lang}_COMPILE_OPTIONS_IPO "-Qipo")
set(CMAKE_${lang}_LINK_OPTIONS_IPO "-Qipo")
+ if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL "2021.4")
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-external:I")
+ if (CMAKE_${lang}_COMPILER_VERSION VERSION_GREATER_EQUAL "2022.2")
+ set(_CMAKE_INCLUDE_SYSTEM_FLAG_${lang}_WARNING "-external:W0 ")
+ endif ()
+ endif ()
endmacro()
else()
# GNU-like