45 lines
1.8 KiB
CMake
45 lines
1.8 KiB
CMake
# From CMake 3.10 documentation
|
|
|
|
#This can run at any time
|
|
KOKKOS_OPTION(CXX_STANDARD "" STRING "The C++ standard for Kokkos to use: 14, 17, or 20. If empty, this will default to CMAKE_CXX_STANDARD. If both CMAKE_CXX_STANDARD and Kokkos_CXX_STANDARD are empty, this will default to 14")
|
|
|
|
# Set CXX standard flags
|
|
SET(KOKKOS_ENABLE_CXX14 OFF)
|
|
SET(KOKKOS_ENABLE_CXX17 OFF)
|
|
SET(KOKKOS_ENABLE_CXX20 OFF)
|
|
IF (KOKKOS_CXX_STANDARD)
|
|
IF (${KOKKOS_CXX_STANDARD} STREQUAL "c++98")
|
|
MESSAGE(FATAL_ERROR "Kokkos no longer supports C++98 - minimum C++14")
|
|
ELSEIF (${KOKKOS_CXX_STANDARD} STREQUAL "c++11")
|
|
MESSAGE(FATAL_ERROR "Kokkos no longer supports C++11 - minimum C++14")
|
|
ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++14")
|
|
MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++14'. Use '14' instead.")
|
|
SET(KOKKOS_CXX_STANDARD "14")
|
|
ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++17")
|
|
MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++17'. Use '17' instead.")
|
|
SET(KOKKOS_CXX_STANDARD "17")
|
|
ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++1y")
|
|
MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++1y'. Use '1Y' instead.")
|
|
SET(KOKKOS_CXX_STANDARD "1Y")
|
|
ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++1z")
|
|
MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++1z'. Use '1Z' instead.")
|
|
SET(KOKKOS_CXX_STANDARD "1Z")
|
|
ELSEIF(${KOKKOS_CXX_STANDARD} STREQUAL "c++2a")
|
|
MESSAGE(WARNING "Deprecated Kokkos C++ standard set as 'c++2a'. Use '2A' instead.")
|
|
SET(KOKKOS_CXX_STANDARD "2A")
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
IF (NOT KOKKOS_CXX_STANDARD AND NOT CMAKE_CXX_STANDARD)
|
|
MESSAGE(STATUS "Setting default Kokkos CXX standard to 14")
|
|
SET(KOKKOS_CXX_STANDARD "14")
|
|
ELSEIF(NOT KOKKOS_CXX_STANDARD)
|
|
MESSAGE(STATUS "Setting default Kokkos CXX standard to ${CMAKE_CXX_STANDARD}")
|
|
SET(KOKKOS_CXX_STANDARD ${CMAKE_CXX_STANDARD})
|
|
ENDIF()
|
|
|
|
|
|
|
|
|
|
|