| |
| # This module is shared by multiple languages; use include blocker. |
| if(__COMPILER_NVIDIA) |
| return() |
| endif() |
| set(__COMPILER_NVIDIA 1) |
| |
| include(Compiler/CMakeCommonCompilerMacros) |
| |
| macro(__compiler_nvidia_cxx_standards lang) |
| if("x${CMAKE_${lang}_SIMULATE_ID}" STREQUAL "xMSVC") |
| # MSVC requires c++14 as the minimum level |
| set(CMAKE_${lang}03_STANDARD_COMPILE_OPTION "") |
| set(CMAKE_${lang}03_EXTENSION_COMPILE_OPTION "") |
| |
| # MSVC requires c++14 as the minimum level |
| set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "") |
| set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "") |
| |
| if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 9.0) |
| if(CMAKE_${lang}_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.10.25017) |
| set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std=c++14") |
| set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std=c++14") |
| else() |
| set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "") |
| set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "") |
| endif() |
| endif() |
| |
| if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 11.0) |
| if(CMAKE_${lang}_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.11.25505) |
| set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std=c++17") |
| set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=c++17") |
| endif() |
| endif() |
| |
| if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 12.0) |
| if(CMAKE_${lang}_SIMULATE_VERSION VERSION_GREATER_EQUAL 19.11.25505) |
| set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++20") |
| set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=c++20") |
| endif() |
| endif() |
| else() |
| set(CMAKE_${lang}03_STANDARD_COMPILE_OPTION "") |
| set(CMAKE_${lang}03_EXTENSION_COMPILE_OPTION "") |
| |
| set(CMAKE_${lang}11_STANDARD_COMPILE_OPTION "-std=c++11") |
| set(CMAKE_${lang}11_EXTENSION_COMPILE_OPTION "-std=c++11") |
| |
| if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 9.0) |
| set(CMAKE_${lang}03_STANDARD_COMPILE_OPTION "-std=c++03") |
| set(CMAKE_${lang}03_EXTENSION_COMPILE_OPTION "-std=c++03") |
| set(CMAKE_${lang}14_STANDARD_COMPILE_OPTION "-std=c++14") |
| set(CMAKE_${lang}14_EXTENSION_COMPILE_OPTION "-std=c++14") |
| endif() |
| |
| if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 11.0) |
| set(CMAKE_${lang}17_STANDARD_COMPILE_OPTION "-std=c++17") |
| set(CMAKE_${lang}17_EXTENSION_COMPILE_OPTION "-std=c++17") |
| endif() |
| |
| if (NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 12.0) |
| set(CMAKE_${lang}20_STANDARD_COMPILE_OPTION "-std=c++20") |
| set(CMAKE_${lang}20_EXTENSION_COMPILE_OPTION "-std=c++20") |
| endif() |
| endif() |
| |
| __compiler_check_default_language_standard(${lang} 6.0 03) |
| endmacro() |