Jelajahi Sumber

Intel: Fix compiler extension flags on Windows

The extension flags enabled by commit v3.6.0-rc1~120^2~1 (Features:
Record standard flags for Intel C/C++ on Windows, 2016-04-18) of the
form `-Qstd=gnu++11` are not supported by the Intel C/C++ Compiler for
Windows.  Fall back to using the non-extension form of the flags.

Issue: #16384
Brad King 9 tahun lalu
induk
melakukan
881585f975
2 mengubah file dengan 12 tambahan dan 6 penghapusan
  1. 6 3
      Modules/Compiler/Intel-C.cmake
  2. 6 3
      Modules/Compiler/Intel-CXX.cmake

+ 6 - 3
Modules/Compiler/Intel-C.cmake

@@ -9,20 +9,22 @@ set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <OBJECT> -MF <DEPFILE>")
 
 if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
   set(_std -Qstd)
+  set(_ext c)
 else()
   set(_std -std)
+  set(_ext gnu)
 endif()
 
 if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
   set(CMAKE_C11_STANDARD_COMPILE_OPTION "${_std}=c11")
-  set(CMAKE_C11_EXTENSION_COMPILE_OPTION "${_std}=gnu11")
+  set(CMAKE_C11_EXTENSION_COMPILE_OPTION "${_std}=${_ext}11")
 endif()
 
 if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
   set(CMAKE_C90_STANDARD_COMPILE_OPTION "${_std}=c89")
-  set(CMAKE_C90_EXTENSION_COMPILE_OPTION "${_std}=gnu89")
+  set(CMAKE_C90_EXTENSION_COMPILE_OPTION "${_std}=${_ext}89")
   set(CMAKE_C99_STANDARD_COMPILE_OPTION "${_std}=c99")
-  set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=gnu99")
+  set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=${_ext}99")
 endif()
 
 if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1)
@@ -42,6 +44,7 @@ if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1)
 endif()
 
 unset(_std)
+unset(_ext)
 
 macro(cmake_record_c_compile_features)
   macro(_get_intel_c_features std_version list)

+ 6 - 3
Modules/Compiler/Intel-CXX.cmake

@@ -9,8 +9,10 @@ set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <OBJECT> -MF <DEPFILE>")
 
 if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
   set(_std -Qstd)
+  set(_ext c++)
 else()
   set(_std -std)
+  set(_ext gnu++)
 endif()
 
 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2)
@@ -25,15 +27,15 @@ endif()
 
 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
   set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "${_std}=c++11")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "${_std}=gnu++11")
+  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "${_std}=${_ext}11")
 elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
   set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "${_std}=c++0x")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "${_std}=gnu++0x")
+  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "${_std}=${_ext}0x")
 endif()
 
 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
   set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "${_std}=c++98")
-  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "${_std}=gnu++98")
+  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "${_std}=${_ext}98")
 endif()
 
 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
@@ -50,6 +52,7 @@ if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
 endif()
 
 unset(_std)
+unset(_ext)
 
 macro(cmake_record_cxx_compile_features)
   macro(_get_intel_features std_version list)