1include(Compiler/Intel) 2__compiler_intel(CXX) 3 4string(APPEND CMAKE_CXX_FLAGS_MINSIZEREL_INIT " -DNDEBUG") 5string(APPEND CMAKE_CXX_FLAGS_RELEASE_INIT " -DNDEBUG") 6string(APPEND CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT " -DNDEBUG") 7 8set(CMAKE_DEPFILE_FLAGS_CXX "-MD -MT <DEP_TARGET> -MF <DEP_FILE>") 9if((NOT DEFINED CMAKE_DEPENDS_USE_COMPILER OR CMAKE_DEPENDS_USE_COMPILER) 10 AND CMAKE_GENERATOR MATCHES "Makefiles|WMake") 11 # dependencies are computed by the compiler itself 12 set(CMAKE_CXX_DEPFILE_FORMAT gcc) 13 set(CMAKE_CXX_DEPENDS_USE_COMPILER TRUE) 14endif() 15 16if("x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC") 17 18 set(CMAKE_CXX_CLANG_TIDY_DRIVER_MODE "cl") 19 set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE_DRIVER_MODE "cl") 20 21 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0) 22 set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-Qstd=c++20") 23 set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-Qstd=c++20") 24 endif() 25 26 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0) 27 set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-Qstd=c++17") 28 set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-Qstd=c++17") 29 endif() 30 31 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 16.0) 32 set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-Qstd=c++14") 33 set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-Qstd=c++14") 34 endif() 35 36 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0) 37 set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++11") 38 set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++11") 39 elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) 40 set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-Qstd=c++0x") 41 set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-Qstd=c++0x") 42 endif() 43 44 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) 45 set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "") 46 set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "") 47 set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON) 48 endif() 49 50else() 51 52 set(CMAKE_CXX_COMPILE_OPTIONS_EXPLICIT_LANGUAGE -x c++) 53 54 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.0) 55 set(CMAKE_CXX20_STANDARD_COMPILE_OPTION "-std=c++20") 56 set(CMAKE_CXX20_EXTENSION_COMPILE_OPTION "-std=gnu++20") 57 endif() 58 59 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18.0.0) 60 set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++17") 61 set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++17") 62 endif() 63 64 if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 17.0) 65 set(CMAKE_CXX14_STANDARD__HAS_FULL_SUPPORT ON) 66 endif() 67 68 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.2) 69 set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14") 70 elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0) 71 set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y") 72 endif() 73 74 # Intel 15.0.2 accepts c++14 instead of c++1y, but not gnu++14 75 # instead of gnu++1y. Intel 17.0.0 accepts gnu++14 too. 76 if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 17.0) 77 set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14") 78 elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0.0) 79 set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y") 80 endif() 81 82 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 15.0) 83 set(CMAKE_CXX11_STANDARD__HAS_FULL_SUPPORT ON) 84 endif() 85 86 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 13.0) 87 set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11") 88 set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11") 89 elseif (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) 90 set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x") 91 set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x") 92 endif() 93 94 if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 12.1) 95 set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98") 96 set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98") 97 set(CMAKE_CXX98_STANDARD__HAS_FULL_SUPPORT ON) 98 endif() 99 100endif() 101 102__compiler_check_default_language_standard(CXX 12.1 98) 103 104set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>") 105set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE "<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>") 106