Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 13 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,11 @@ endif()

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
macro(set_if_higher VARIABLE VALUE)
if(${VARIABLE} LESS ${VALUE})
set(${VARIABLE} ${VALUE})
endif()
endmacro()
if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
message(WARNING "GCC4 is not fully supported.")
endif()
Expand Down Expand Up @@ -229,7 +234,7 @@ endif()

if(USE_CUDA OR USE_CUSOLVER_LCAO)
cmake_minimum_required(VERSION 3.18) # required by `CUDA_ARCHITECTURES` below
set(CMAKE_CXX_STANDARD 14)
set_if_higher(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_EXTENSIONS ON)
set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD})
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
Expand Down Expand Up @@ -394,11 +399,15 @@ if (ENABLE_FLOAT_FFTW)
endif()

if(ENABLE_DEEPKS)
set(CMAKE_CXX_STANDARD 14)
# Torch uses outdated components to detech CUDA arch, causing failure on latest CUDA kits.
# See above for setting CMAKE_CUDA_ARCHITECTURES
set(TORCH_CUDA_ARCH_LIST CMAKE_CUDA_ARCHITECTURES)
find_package(Torch REQUIRED)
if(NOT Torch_VERSION VERSION_LESS "2.1.0")
set_if_higher(CMAKE_CXX_STANDARD 17)
elseif(NOT Torch_VERSION VERSION_LESS "1.5.0")
set_if_higher(CMAKE_CXX_STANDARD 14)
endif()
include_directories(${TORCH_INCLUDE_DIRS})
target_link_libraries(${ABACUS_BIN_NAME} deepks)
list(APPEND math_libs ${TORCH_LIBRARIES})
Expand Down Expand Up @@ -448,7 +457,7 @@ if(DEFINED LIBRI_DIR)
set(ENABLE_LIBRI ON)
endif()
if(ENABLE_LIBRI)
set(CMAKE_CXX_STANDARD 14)
set_if_higher(CMAKE_CXX_STANDARD 14)
if(LIBRI_DIR)
include_directories(${LIBRI_DIR}/include)
elseif(GIT_SUBMODULE)
Expand Down Expand Up @@ -558,7 +567,7 @@ if(INFO)
endif()

IF (BUILD_TESTING)
set(CMAKE_CXX_STANDARD 14) # Required in orbital
set_if_higher(CMAKE_CXX_STANDARD 14) # Required in orbital
include(CTest)
enable_testing()
find_package(GTest HINTS /usr/local/lib/ ${GTEST_DIR})
Expand Down