@@ -227,8 +227,11 @@ set(ABACUS_BIN_PATH ${CMAKE_CURRENT_BINARY_DIR}/${ABACUS_BIN_NAME})
227227include_directories (${ABACUS_SOURCE_DIR } )
228228include_directories (${ABACUS_SOURCE_DIR } /source_base/module_container )
229229
230+ set (ABACUS_MIN_CXX_STANDARD 14)
230231if (NOT DEFINED CMAKE_CXX_STANDARD )
231- set (CMAKE_CXX_STANDARD 11)
232+ set (CMAKE_CXX_STANDARD ${ABACUS_MIN_CXX_STANDARD} )
233+ elseif (CMAKE_CXX_STANDARD LESS ABACUS_MIN_CXX_STANDARD)
234+ message (FATAL_ERROR "ABACUS requires C++14 or newer." )
232235endif ()
233236set (CMAKE_CXX_STANDARD_REQUIRED ON )
234237
@@ -331,7 +334,6 @@ if(ENABLE_LCAO)
331334 target_link_libraries (${ABACUS_BIN_NAME} ${PEXSI_LIBRARY} ${SuperLU_DIST_LIBRARY} ${ParMETIS_LIBRARY} ${METIS_LIBRARY} pexsi )
332335 include_directories (${PEXSI_INCLUDE_DIR} ${ParMETIS_INCLUDE_DIR} )
333336 add_compile_definitions (__PEXSI )
334- set (CMAKE_CXX_STANDARD 14)
335337 endif ()
336338else ()
337339 set (ENABLE_MLALGO OFF )
@@ -452,7 +454,6 @@ if(USE_CUDA)
452454 # Always find CUDAToolkit to get CUDAToolkit_VERSION
453455 find_package (CUDAToolkit REQUIRED )
454456
455- set_if_higher (CMAKE_CXX_STANDARD 14 )
456457 if (CUDAToolkit_VERSION VERSION_GREATER_EQUAL "13.0" )
457458 message (STATUS "CUDA ${CUDAToolkit_VERSION} detected. Setting CMAKE_CUDA_STANDARD to 17." )
458459 set_if_higher (CMAKE_CXX_STANDARD 17 )
@@ -687,8 +688,6 @@ if(ENABLE_MLALGO OR DEFINED Torch_DIR)
687688 find_package (Torch REQUIRED )
688689 if (NOT Torch_VERSION VERSION_LESS "2.1.0" )
689690 set_if_higher (CMAKE_CXX_STANDARD 17 )
690- elseif (NOT Torch_VERSION VERSION_LESS "1.5.0" )
691- set_if_higher (CMAKE_CXX_STANDARD 14 )
692691 endif ()
693692 include_directories (${TORCH_INCLUDE_DIRS} )
694693 if (MKL_FOUND)
@@ -750,7 +749,6 @@ if(DEFINED LIBRI_DIR)
750749 set (ENABLE_LIBRI ON )
751750endif ()
752751if (ENABLE_LIBRI)
753- set_if_higher (CMAKE_CXX_STANDARD 14 )
754752 if (LIBRI_DIR)
755753 else ()
756754 find_package (LibRI REQUIRED )
0 commit comments