correct CMake support for USER-PACE package and align with recent conventions for downloading external code

This commit is contained in:
Axel Kohlmeyer
2021-04-07 17:37:30 -04:00
parent 0496626533
commit 0151fd00c2

View File

@ -1,14 +1,26 @@
set(PACE_EVALUATOR_PATH ${LAMMPS_LIB_SOURCE_DIR}/pace)
message("CMakeLists.txt DEBUG: PACE_EVALUATOR_PATH=${PACE_EVALUATOR_PATH}")
set(PACE_EVALUATOR_SRC_PATH ${PACE_EVALUATOR_PATH})
FILE(GLOB PACE_EVALUATOR_SOURCE_FILES ${PACE_EVALUATOR_SRC_PATH}/*.cpp)
set(PACE_EVALUATOR_INCLUDE_DIR ${PACE_EVALUATOR_SRC_PATH})
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.2.3.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_MD5 "9ebb087cba7e4ca041fde52f7e9e640c" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
mark_as_advanced(PACELIB_URL)
mark_as_advanced(PACELIB_MD5)
# download library sources to build folder
file(DOWNLOAD ${PACELIB_URL} libpace.tar.gz SHOW_PROGRESS EXPECTED_HASH MD5=${PACELIB_MD5})
# uncompress downloaded sources
execute_process(
COMMAND ${CMAKE_COMMAND} -E remove_directory lammps-user-pace*
COMMAND ${CMAKE_COMMAND} -E tar xzf libpace.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
##### aceevaluator #####
add_library(aceevaluator ${PACE_EVALUATOR_SOURCE_FILES})
target_include_directories(aceevaluator PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR})
target_compile_options(aceevaluator PRIVATE -O2)
set_target_properties(aceevaluator PROPERTIES OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
target_link_libraries(lammps PRIVATE aceevaluator)
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${CMAKE_BINARY_DIR}/lammps-user-pace-*/USER-PACE)
file(GLOB PACE_EVALUATOR_SOURCES ${CMAKE_BINARY_DIR}/lammps-user-pace-*/USER-PACE/*.cpp)
list(FILTER PACE_EVALUATOR_SOURCES EXCLUDE REGEX pair_pace.cpp)
add_library(pace STATIC ${PACE_EVALUATOR_SOURCES})
set_target_properties(pace PROPERTIES OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR})
target_link_libraries(lammps PRIVATE pace)