try to find system libyaml-cpp v.0.6.3 library, otherwise use downloaded one

This commit is contained in:
Yury Lysogorskiy
2021-10-14 15:16:48 +02:00
parent 87cc67778b
commit cd526ad54c

View File

@ -1,22 +1,40 @@
#set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.9.28.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
#set(PACELIB_MD5 "f98363bb98adc7295ea63974738c2a1b" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
#mark_as_advanced(PACELIB_URL)
#mark_as_advanced(PACELIB_MD5)
set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.9.28.upd1.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
set(PACELIB_MD5 "ec75bc491edd75e10560cdbf129d91a7" 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} ${CMAKE_BINARY_DIR}/libpace.tar.gz SHOW_PROGRESS EXPECTED_HASH MD5=${PACELIB_MD5})
file(DOWNLOAD ${PACELIB_URL} ${CMAKE_BINARY_DIR}/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}
#)
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}
)
file(GLOB lib-pace ${CMAKE_BINARY_DIR}/lammps-user-pace-*)
add_subdirectory(${lib-pace}/yaml-cpp build-yaml-cpp)
set(YAML_CPP_INCLUDE_DIR ${lib-pace}/yaml-cpp/include)
# try to find system libyaml-cpp v.0.6.3 library
find_package(yaml-cpp 0.6.3 QUIET)
find_path(YAML_CPP_INCLUDE_DIR
NAMES yaml.h
PATHS ${YAML_CPP_INCLUDE_DIRS})
find_library(YAML_CPP_LIBRARY
NAMES yaml-cpp
PATHS ${YAML_CPP_LIBRARY_DIRS})
# if system library not found - using downloaded
if(${YAML_CPP_LIBRARY} STREQUAL "" OR ${YAML_CPP_INCLUDE_DIR} STREQUAL "" OR
${YAML_CPP_INCLUDE_DIR} STREQUAL "YAML_CPP_INCLUDE_DIR-NOTFOUND")
message("-- Library yaml-fcc v0.6.3 not found, using downloaded copy")
add_subdirectory(${lib-pace}/yaml-cpp build-yaml-cpp)
set(YAML_CPP_INCLUDE_DIR ${lib-pace}/yaml-cpp/include)
set(YAML_CPP_LIBRARY yaml-cpp-pace)
endif()
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${lib-pace}/ML-PACE)
file(GLOB PACE_EVALUATOR_SOURCES ${lib-pace}/ML-PACE/*.cpp)
@ -24,8 +42,8 @@ list(FILTER PACE_EVALUATOR_SOURCES EXCLUDE REGEX pair_pace.cpp)
add_library(pace STATIC ${PACE_EVALUATOR_SOURCES})
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR} ${YAML_CPP_INCLUDE_DIR})
target_include_directories(pace PRIVATE ${YAML_CPP_INCLUDE_DIR})
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR})
target_link_libraries(lammps PRIVATE pace)
target_link_libraries(lammps PRIVATE yaml-cpp-pace)
target_link_libraries(lammps PRIVATE ${YAML_CPP_LIBRARY})