Download and compile modified YAML-cpp 0.6.3 in namespace YAML_PACE

This commit is contained in:
Yury Lysogorskiy
2021-10-25 17:34:08 +02:00
parent 5e102e1bfe
commit 52d99700ec
2 changed files with 11 additions and 61 deletions

View File

@ -1,61 +1,10 @@
# try to find system libyaml-cpp v.0.6.3 library set(PACELIB_URL "https://github.com/ICAMS/lammps-user-pace/archive/refs/tags/v.2021.10.25.yaml_pace.tar.gz" CACHE STRING "URL for PACE evaluator library sources")
find_package(yaml-cpp 0.6.3 EXACT QUIET) set(PACELIB_MD5 "4c84c1cb1e2d8c690e3f797433ed2886" CACHE STRING "MD5 checksum of PACE evaluator library tarball")
if(yaml-cpp_FOUND)
message(STATUS "Library yaml-cpp(v0.6.3) found")
#message(STATUS "YAML_CPP_LIBRARY_DIRS=${YAML_CPP_LIBRARY_DIRS}")
# get_cmake_property(_variableNames VARIABLES)
# list (SORT _variableNames)
# foreach (_variableName ${_variableNames})
# message(STATUS "${_variableName}=${${_variableName}}")
# endforeach()
find_path(YAML_CPP_INCLUDE_DIR
NAMES yaml.h
PATHS ${YAML_CPP_INCLUDE_DIRS})
if(NOT YAML_CPP_LIBRARIES)
find_library(YAML_CPP_LIBRARY
NAMES yaml-cpp
PATHS ${YAML_CPP_LIBRARY_DIRS})
else()
set(YAML_CPP_LIBRARY ${YAML_CPP_LIBRARIES})
endif()
else()
message(STATUS "Library yaml-cpp(v0.6.3) not found, downloading")
set(YAML_063_URL "https://github.com/jbeder/yaml-cpp/archive/refs/tags/yaml-cpp-0.6.3.tar.gz" CACHE STRING "URL for yaml-cpp (v.0.6.3) library sources")
set(YAML_063_MD5 "b45bf1089a382e81f6b661062c10d0c2" CACHE STRING "MD5 checksum of yaml-cpp (v.0.6.3) library tarball")
mark_as_advanced(YAML_063_URL)
mark_as_advanced(YAML_063_MD5)
# download library sources to build folder
file(DOWNLOAD ${YAML_063_URL} ${CMAKE_BINARY_DIR}/yaml-cpp-0.6.3.tar.gz SHOW_PROGRESS EXPECTED_HASH MD5=${YAML_063_MD5})
execute_process(
COMMAND ${CMAKE_COMMAND} -E remove_directory yaml-cpp-yaml-cpp-0.6.3*
COMMAND ${CMAKE_COMMAND} -E tar xzf yaml-cpp-0.6.3.tar.gz
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
set(YAML_DIR ${CMAKE_BINARY_DIR}/yaml-cpp-yaml-cpp-0.6.3)
add_subdirectory(${YAML_DIR} build-yaml-cpp EXCLUDE_FROM_ALL)
set(YAML_CPP_INCLUDE_DIR ${YAML_DIR}/include)
set(YAML_CPP_LIBRARY yaml-cpp)
endif()
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_URL)
mark_as_advanced(PACELIB_MD5) mark_as_advanced(PACELIB_MD5)
# download library sources to build folder # 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 EXPECTED_HASH MD5=${PACELIB_MD5}) #SHOW_PROGRESS
# uncompress downloaded sources # uncompress downloaded sources
execute_process( execute_process(
@ -65,9 +14,8 @@ execute_process(
) )
file(GLOB lib-pace ${CMAKE_BINARY_DIR}/lammps-user-pace-*) file(GLOB lib-pace ${CMAKE_BINARY_DIR}/lammps-user-pace-*)
add_subdirectory(${lib-pace}/yaml-cpp build-yaml-cpp)
message(STATUS "YAML_CPP_INCLUDE_DIR=${YAML_CPP_INCLUDE_DIR}") set(YAML_CPP_INCLUDE_DIR ${lib-pace}/yaml-cpp/include)
message(STATUS "YAML_CPP_LIBRARY=${YAML_CPP_LIBRARY}")
file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${lib-pace}/ML-PACE) file(GLOB PACE_EVALUATOR_INCLUDE_DIR ${lib-pace}/ML-PACE)
file(GLOB PACE_EVALUATOR_SOURCES ${lib-pace}/ML-PACE/*.cpp) file(GLOB PACE_EVALUATOR_SOURCES ${lib-pace}/ML-PACE/*.cpp)
@ -75,8 +23,9 @@ list(FILTER PACE_EVALUATOR_SOURCES EXCLUDE REGEX pair_pace.cpp)
add_library(pace STATIC ${PACE_EVALUATOR_SOURCES}) add_library(pace STATIC ${PACE_EVALUATOR_SOURCES})
set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE}) set_target_properties(pace PROPERTIES CXX_EXTENSIONS ON OUTPUT_NAME lammps_pace${LAMMPS_MACHINE})
target_include_directories(pace PRIVATE ${YAML_CPP_INCLUDE_DIR}) target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR} ${YAML_CPP_INCLUDE_DIR})
target_include_directories(pace PUBLIC ${PACE_EVALUATOR_INCLUDE_DIR})
target_link_libraries(pace PRIVATE yaml-cpp-pace)
target_link_libraries(lammps PRIVATE pace) target_link_libraries(lammps PRIVATE pace)
target_link_libraries(lammps PRIVATE ${YAML_CPP_LIBRARY})

View File

@ -15,13 +15,14 @@ from install_helpers import fullpath, geturl, checkmd5sum
# settings # settings
thisdir = fullpath('.') thisdir = fullpath('.')
version = 'v.2021.9.28' version = 'v.2021.10.25.yaml_pace'
# known checksums for different PACE versions. used to validate the download. # known checksums for different PACE versions. used to validate the download.
checksums = { \ checksums = { \
'v.2021.2.3.upd2' : '8fd1162724d349b930e474927197f20d', 'v.2021.2.3.upd2' : '8fd1162724d349b930e474927197f20d',
'v.2021.4.9' : '4db54962fbd6adcf8c18d46e1798ceb5', 'v.2021.4.9' : '4db54962fbd6adcf8c18d46e1798ceb5',
'v.2021.9.28' : 'f98363bb98adc7295ea63974738c2a1b', 'v.2021.9.28' : 'f98363bb98adc7295ea63974738c2a1b',
'v.2021.10.25.yaml_pace' : '4c84c1cb1e2d8c690e3f797433ed2886'
} }