31 lines
1.3 KiB
CMake
31 lines
1.3 KiB
CMake
# - CXX compile features for Intel to support C++14/17 on CMake from 3.8
|
|
#
|
|
#-----------------------------------------------------------------------
|
|
# Add compile features for Intel - should eventually be placed
|
|
# into a module, as it will need exporting for use by clients
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
|
|
# CMake 3.8,3.9,3.10 support up to 16.0, c++14
|
|
# 3.11,3,12,3.13,3.14,3.15,3.16 support up to 18, c++17
|
|
# So need to provide addons to provide c++17 on 3.8-3.10
|
|
if(CMAKE_VERSION VERSION_LESS 3.11)
|
|
if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
|
|
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
|
|
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-Qstd=c++17")
|
|
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-Qstd=c++17")
|
|
|
|
list(APPEND CMAKE_CXX17_COMPILE_FEATURES cxx_std_17)
|
|
set(CMAKE_CXX_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES} "${CMAKE_CXX17_COMPILE_FEATURES}")
|
|
endif()
|
|
else()
|
|
if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
|
|
set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
|
|
set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
|
|
list(APPEND CMAKE_CXX17_COMPILE_FEATURES cxx_std_17)
|
|
set(CMAKE_CXX_COMPILE_FEATURES ${CMAKE_CXX_COMPILE_FEATURES} "${CMAKE_CXX17_COMPILE_FEATURES}")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
endif()
|