From 3dda5c55eaaaf88673f6d6eb20a2261f3e044d72 Mon Sep 17 00:00:00 2001 From: Chun Cai Date: Thu, 30 Nov 2023 09:56:49 +0800 Subject: [PATCH 1/3] Fix: setting the highest required cpp standard version --- CMakeLists.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b3452043de..5ef5fb290b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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() @@ -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) @@ -391,7 +396,7 @@ if (ENABLE_FLOAT_FFTW) endif() if(ENABLE_DEEPKS) - set(CMAKE_CXX_STANDARD 14) + set_if_higher(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) @@ -445,7 +450,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) @@ -555,7 +560,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}) From a69b10067daa89a7106d2fa7b65bc0e9783ab081 Mon Sep 17 00:00:00 2001 From: Chun Cai Date: Sat, 2 Dec 2023 17:51:09 +0800 Subject: [PATCH 2/3] set cpp standard version regarding torch --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ef5fb290b..32fbf40fc5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -396,11 +396,15 @@ if (ENABLE_FLOAT_FFTW) endif() if(ENABLE_DEEPKS) - set_if_higher(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}) From 410691b17e7d8466697d5362b56cd5ba443a7f25 Mon Sep 17 00:00:00 2001 From: Chun Cai Date: Sat, 2 Dec 2023 17:51:55 +0800 Subject: [PATCH 3/3] remove extra space --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 32fbf40fc5..2c9aac1a99 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,7 @@ set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) macro(set_if_higher VARIABLE VALUE) if(${VARIABLE} LESS ${VALUE}) - set(${VARIABLE} ${VALUE} ) + set(${VARIABLE} ${VALUE}) endif() endmacro() if (CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)