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
This commit is contained in:
Brad King 2016-10-24 14:16:22 -04:00
parent 876da11858
commit 881585f975
2 changed files with 12 additions and 6 deletions

View File

@ -9,20 +9,22 @@ set(CMAKE_DEPFILE_FLAGS_C "-MD -MT <OBJECT> -MF <DEPFILE>")
if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC") if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
set(_std -Qstd) set(_std -Qstd)
set(_ext c)
else() else()
set(_std -std) set(_std -std)
set(_ext gnu)
endif() endif()
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0) if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 15.0.0)
set(CMAKE_C11_STANDARD_COMPILE_OPTION "${_std}=c11") 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() endif()
if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0) if (NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.0)
set(CMAKE_C90_STANDARD_COMPILE_OPTION "${_std}=c89") 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_STANDARD_COMPILE_OPTION "${_std}=c99")
set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=gnu99") set(CMAKE_C99_EXTENSION_COMPILE_OPTION "${_std}=${_ext}99")
endif() endif()
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 12.1) 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() endif()
unset(_std) unset(_std)
unset(_ext)
macro(cmake_record_c_compile_features) macro(cmake_record_c_compile_features)
macro(_get_intel_c_features std_version list) macro(_get_intel_c_features std_version list)

View File

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