Intel-CXX.cmake 3.2 KB
Newer Older
1 2
include(Compiler/Intel)
__compiler_intel(CXX)
3

4 5 6
string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -DNDEBUG")
string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -DNDEBUG")
7

8
set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <OBJECT> -MF <DEPFILE>")
9

10
if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
11

12 13 14 15 16
  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")
  endif()

17 18 19 20
  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0)
    set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-Qstd=c++14")
    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-Qstd=c++14")
  endif()
21 22 23 24 25 26 27 28 29 30 31 32

  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0)
    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++11")
    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++11")
  elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++0x")
    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++0x")
  endif()

  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1)
    set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
    set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
33
    set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
34 35
  endif()

36
else()
37

38 39
  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0)
    set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17")
40
    set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17")
41 42
  endif()

43
  if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 17.0)
44 45 46
    set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON)
  endif()

47 48 49 50
  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2)
    set(CMAKE_CXX14_STANDARD_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")
51 52 53 54 55 56 57 58
  endif()

  # Intel 15.0.2 accepts c++14 instead of c++1y, but not gnu++14
  # instead of gnu++1y.  Intel 17.0.0 accepts gnu++14 too.
  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17.0)
    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
  elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0)
    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
59
  endif()
60

61 62 63 64
  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0)
    set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON)
  endif()

65 66 67 68 69 70 71
  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")
  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")
  endif()
72

73 74 75
  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")
76
    set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON)
77
  endif()
78

79
endif()
80

81 82
__compiler_check_default_language_standard(CXX 12.1 98)

83 84
set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")