raise the C++ standard to be at least C++14 when Kokkos is enabled.

This still allows to request a later standard for as long as it is C++14 or later
This commit is contained in:
Axel Kohlmeyer
2021-10-01 15:16:40 -04:00
parent 139dfd89e2
commit cf06620538
2 changed files with 5 additions and 2 deletions

View File

@ -90,8 +90,11 @@ if((CMAKE_CXX_COMPILER_ID STREQUAL "Intel") OR (CMAKE_CXX_COMPILER_ID STREQUAL "
endif() endif()
endif() endif()
# we require C++11 without extensions # we require C++11 without extensions. Kokkos requires at least C++14 (currently)
set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD 11)
if(PKG_KOKKOS AND (CMAKE_CXX_STANDARD LESS 14))
set(CMAKE_CXX_STANDARD 14)
endif()
set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions") set(CMAKE_CXX_EXTENSIONS OFF CACHE BOOL "Use compiler extensions")
# ugly hack for MSVC which by default always reports an old C++ standard in the __cplusplus macro # ugly hack for MSVC which by default always reports an old C++ standard in the __cplusplus macro

View File

@ -1,7 +1,7 @@
######################################################################## ########################################################################
# As of version 3.3.0 Kokkos requires C++14 # As of version 3.3.0 Kokkos requires C++14
if(CMAKE_CXX_STANDARD LESS 14) if(CMAKE_CXX_STANDARD LESS 14)
set(CMAKE_CXX_STANDARD 14) message(FATAL_ERROR "The KOKKOS package requires the C++ standard to be set to at least C++14")
endif() endif()
######################################################################## ########################################################################
# consistency checks and Kokkos options/settings required by LAMMPS # consistency checks and Kokkos options/settings required by LAMMPS