@@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 3.16)
55########################################
66
77project (ABACUS
8- VERSION 2.2.0
8+ VERSION 2.2.3
99 DESCRIPTION "ABACUS is an electronic structure package based on DFT."
1010 HOMEPAGE_URL "https://github.com/deepmodeling/abacus-develop"
1111 LANGUAGES CXX
@@ -28,8 +28,10 @@ set(ABACUS_TEST_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
2828set (ABACUS_BIN_PATH ${CMAKE_CURRENT_BINARY_DIR} /${ABACUS_BIN_NAME} )
2929include_directories (${ABACUS_SOURCE_DIR} )
3030add_executable (${ABACUS_BIN_NAME} source /main.cpp)
31+ set (CMAKE_CXX_STANDARD 11)
32+ set (CMAKE_CXX_STANDARD_REQUIRED ON )
3133add_compile_options (-O2 -g)
32- SET ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -Wno-write-strings" )
34+ add_compile_options ( -Wno-write-strings )
3335
3436find_package (Cereal REQUIRED)
3537include_directories (${Cereal_INCLUDE_DIR} )
@@ -52,10 +54,8 @@ if(USE_OPENMP)
5254 find_package (OpenMP REQUIRED)
5355 target_link_libraries (${ABACUS_BIN_NAME} OpenMP::OpenMP_CXX)
5456 add_compile_options (${OpenMP_CXX_FLAGS} )
55- #add_compile_definitions(_OPENMP)
5657endif ()
5758
58- set (CMAKE_CXX_STANDARD 11)
5959include (CheckLanguage)
6060check_language(CUDA)
6161if (CMAKE_CUDA_COMPILER)
@@ -71,7 +71,7 @@ if(CMAKE_CUDA_COMPILER)
7171 endif ()
7272 else ()
7373 if (NOT USE_CUDA AND NOT USE_CUSOLVER_LCAO)
74- message (WARNING "CUDA components detected, but both USE_CUDA and USE_CUSOLVER_LCAO set to OFF. \n NOT building CUDA version of ABACUS." )
74+ message (STATUS "CUDA components detected, but both USE_CUDA and USE_CUSOLVER_LCAO set to OFF. NOT building CUDA version of ABACUS." )
7575 elseif (USE_CUDA AND USE_CUSOLVER_LCAO)
7676 message (FATAL_ERROR "USE_CUDA and USE_CUSOLVER_LCAO set, but now they not allowed to coexist." )
7777 endif ()
@@ -88,8 +88,7 @@ if(USE_CUDA OR USE_CUSOLVER_LCAO)
8888 cmake_minimum_required (VERSION 3.18) # required by `CUDA_ARCHITECTURES` below
8989 set (CMAKE_CXX_STANDARD 14)
9090 set (CMAKE_CXX_EXTENSIONS ON )
91- set (CMAKE_CXX_STANDARD_REQUIRED ON )
92- set (CMAKE_CUDA_STANDARD 14)
91+ set (CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD} )
9392 set (CMAKE_CUDA_STANDARD_REQUIRED ON )
9493 set (CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER} )
9594 enable_language (CUDA)
@@ -120,9 +119,7 @@ endif()
120119# Warning: CMake add support to HIP in version 3.21. This is rather a new version.
121120# Use cmake with AMD-ROCm: https://rocmdocs.amd.com/en/latest/Installation_Guide/Using-CMake-with-AMD-ROCm.html
122121if (USE_ROCM)
123- set (CMAKE_CXX_STANDARD 11)
124- SET (CMAKE_HIP_STANDARD 11)
125- # set(CMAKE_CXX_STANDARD_REQUIRED True)
122+ SET (CMAKE_HIP_STANDARD ${CMAKE_CXX_STANDARD} )
126123 list (APPEND CMAKE_PREFIX_PATH /opt/rocm/hip /opt/rocm)
127124 list (APPEND CMAKE_SYSTEM_PREFIX_PATH "/opt/rocm/hip" )
128125
@@ -145,6 +142,9 @@ if(USE_ROCM)
145142endif ()
146143
147144if (ENABLE_ASAN)
145+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" )
146+ message (FATAL_ERROR "Address Sanitizer is not supported on Intel compiler." )
147+ endif ()
148148 add_compile_options (
149149 -fsanitize=address
150150 -fno-omit-frame-pointer
@@ -206,13 +206,16 @@ if(ENABLE_DEEPKS)
206206 FetchContent_Declare(
207207 libnpy
208208 GIT_REPOSITORY https://github.com/llohse/libnpy.git
209+ GIT_SHALLOW TRUE
210+ GIT_PROGRESS TRUE
209211 )
210212 FetchContent_MakeAvailable(libnpy)
211213 endif ()
212214 include_directories (${libnpy_SOURCE_DIR} /include )
213215 add_compile_definitions (__DEEPKS)
214216endif ()
215217
218+ list (APPEND math_libs m)
216219target_link_libraries (${ABACUS_BIN_NAME} ${math_libs} )
217220
218221if (DEFINED Libxc_DIR)
@@ -244,17 +247,18 @@ add_compile_definitions(
244247)
245248
246249IF (BUILD_TESTING)
250+ set (CMAKE_CXX_STANDARD 14) # Required in orbital
247251 include (CTest)
248252 enable_testing ()
249- find_package (Threads)
250- set (CMAKE_CXX_STANDARD_REQUIRED ON )
251253 find_package (GTest HINTS /usr/local/lib/ ${GTEST_DIR} )
252254 if (NOT ${GTest_FOUND} )
253255 include (FetchContent)
254256 FetchContent_Declare(
255257 googletest
256258 GIT_REPOSITORY https://github.com/google/googletest.git
257259 GIT_TAG "origin/main"
260+ GIT_SHALLOW TRUE
261+ GIT_PROGRESS TRUE
258262 )
259263 FetchContent_MakeAvailable(googletest)
260264 endif ()
@@ -267,8 +271,11 @@ IF (BUILD_TESTING)
267271 add_executable (${UT_TARGET} ${UT_SOURCES} )
268272 #dependencies & link library
269273 target_link_libraries (${UT_TARGET} ${UT_LIBS}
270- OpenMP::OpenMP_CXX pthread GTest::gtest_main GTest::gmock_main)
271- install (TARGETS ${UT_TARGET} DESTINATION ${CMAKE_CURRENT_BINARY_DIR} /../../../tests )
274+ Threads::Threads GTest::gtest_main GTest::gmock_main)
275+ if (USE_OPENMP)
276+ target_link_libraries (${UT_TARGET} OpenMP::OpenMP_CXX)
277+ endif ()
278+ install (TARGETS ${UT_TARGET} DESTINATION ${CMAKE_BINARY_DIR} /tests )
272279 add_test (NAME ${UT_TARGET}
273280 COMMAND ${UT_TARGET}
274281 WORKING_DIRECTORY $<TARGET_FILE_DIR:${UT_TARGET} >
@@ -302,7 +309,6 @@ target_link_libraries(${ABACUS_BIN_NAME}
302309 hamilt
303310 psi
304311 esolver
305- -lm
306312)
307313
308314install (PROGRAMS ${ABACUS_BIN_PATH}
0 commit comments