mirror of
https://github.com/Kitware/CMake.git
synced 2026-03-15 22:35:33 -05:00
Features: Fix standards and features for Intel 15 on Windows
The Intel 15 compiler for Windows does not support the same set of standards and features as the same version for other platforms.
This commit is contained in:
@@ -49,7 +49,7 @@ set(Intel15_CXX11 "__INTEL_COMPILER >= 1500 && ${DETECT_CXX11}")
|
||||
set(_cmake_feature_test_cxx_alignas "${Intel15_CXX11}")
|
||||
set(_cmake_feature_test_cxx_alignof "${Intel15_CXX11}")
|
||||
set(_cmake_feature_test_cxx_inheriting_constructors "${Intel15_CXX11}")
|
||||
set(_cmake_feature_test_cxx_user_literals "__cpp_user_defined_literals >= 200809 || ${Intel15_CXX11}")
|
||||
set(_cmake_feature_test_cxx_user_literals "__cpp_user_defined_literals >= 200809 || (${Intel15_CXX11} && (!defined(_MSC_VER) || __INTEL_COMPILER >= 1600))")
|
||||
set(_cmake_feature_test_cxx_thread_local "${Intel15_CXX11}")
|
||||
unset(Intel15_CXX11)
|
||||
|
||||
@@ -64,7 +64,7 @@ set(_cmake_feature_test_cxx_sizeof_member "${Intel14_CXX11}")
|
||||
set(_cmake_feature_test_cxx_strong_enums "${Intel14_CXX11}")
|
||||
set(_cmake_feature_test_cxx_reference_qualified_functions "${Intel14_CXX11}")
|
||||
set(_cmake_feature_test_cxx_raw_string_literals "__cpp_raw_strings >= 200710 || ${Intel14_CXX11}")
|
||||
set(_cmake_feature_test_cxx_unicode_literals "__cpp_unicode_literals >= 200710 || ${Intel14_CXX11}")
|
||||
set(_cmake_feature_test_cxx_unicode_literals "__cpp_unicode_literals >= 200710 || (${Intel14_CXX11} && (!defined(_MSC_VER) || __INTEL_COMPILER >= 1600))")
|
||||
set(_cmake_feature_test_cxx_inline_namespaces "${Intel14_CXX11}")
|
||||
set(_cmake_feature_test_cxx_unrestricted_unions "${Intel14_CXX11}")
|
||||
set(_cmake_feature_test_cxx_nonstatic_member_init "${Intel14_CXX11}")
|
||||
|
||||
@@ -10,19 +10,23 @@ set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <OBJECT> -MF <DEPFILE>")
|
||||
if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
||||
set(_std -Qstd)
|
||||
set(_ext c++)
|
||||
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-Qstd=c++14")
|
||||
# todo: there is no gnu++14 value supported; figure out what to do
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-Qstd=c++14")
|
||||
endif()
|
||||
else()
|
||||
set(_std -std)
|
||||
set(_ext gnu++)
|
||||
endif()
|
||||
|
||||
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2)
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "${_std}=c++14")
|
||||
# todo: there is no gnu++14 value supported; figure out what to do
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "${_std}=c++14")
|
||||
elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "${_std}=c++1y")
|
||||
# todo: there is no gnu++14 value supported; figure out what to do
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "${_std}=c++1y")
|
||||
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2)
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
|
||||
# todo: there is no gnu++14 value supported; figure out what to do
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++14")
|
||||
elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
|
||||
set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
|
||||
# todo: there is no gnu++14 value supported; figure out what to do
|
||||
set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=c++1y")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
|
||||
@@ -62,7 +66,9 @@ unset(_ext)
|
||||
macro(cmake_record_cxx_compile_features)
|
||||
set(_result 0)
|
||||
if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
|
||||
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
|
||||
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0
|
||||
OR (NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC" AND
|
||||
NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0))
|
||||
_record_compiler_features_cxx(14)
|
||||
endif()
|
||||
if (_result EQUAL 0)
|
||||
|
||||
Reference in New Issue
Block a user