From 7eab385bb326ee0d8f6144592477ae0178daf526 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 21 Jan 2023 11:18:51 -0500 Subject: [PATCH] add CMake option to skip automatic download of large potential files --- cmake/CMakeLists.txt | 2 ++ cmake/Modules/LAMMPSUtils.cmake | 40 +++++++++++++++++---------------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 0223750ace..767bbbfe34 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -566,6 +566,8 @@ RegisterStyles(${LAMMPS_SOURCE_DIR}) ######################################################## # Fetch missing external files and archives for packages ######################################################## +option(DOWNLOAD_POTENTIALS "Automatically download large potential files" ON) +mark_as_advanced(DOWNLOAD_POTENTIALS) foreach(PKG ${STANDARD_PACKAGES} ${EXTRA_PACKAGES} ${SUFFIX_PACKAGES}) if(PKG_${PKG}) FetchPotentials(${LAMMPS_SOURCE_DIR}/${PKG} ${LAMMPS_POTENTIALS_DIR}) diff --git a/cmake/Modules/LAMMPSUtils.cmake b/cmake/Modules/LAMMPSUtils.cmake index 9602379403..d42f91f10e 100644 --- a/cmake/Modules/LAMMPSUtils.cmake +++ b/cmake/Modules/LAMMPSUtils.cmake @@ -118,25 +118,27 @@ endfunction(GenerateBinaryHeader) # fetch missing potential files function(FetchPotentials pkgfolder potfolder) - if(EXISTS "${pkgfolder}/potentials.txt") - file(STRINGS "${pkgfolder}/potentials.txt" linelist REGEX "^[^#].") - foreach(line ${linelist}) - string(FIND ${line} " " blank) - math(EXPR plusone "${blank}+1") - string(SUBSTRING ${line} 0 ${blank} pot) - string(SUBSTRING ${line} ${plusone} -1 sum) - if(EXISTS "${LAMMPS_POTENTIALS_DIR}/${pot}") - file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum) - endif() - if(NOT sum STREQUAL oldsum) - message(STATUS "Downloading external potential ${pot} from ${LAMMPS_POTENTIALS_URL}") - string(MD5 TMP_EXT "${CMAKE_BINARY_DIR}") - file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" - EXPECTED_HASH MD5=${sum} SHOW_PROGRESS) - file(COPY "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" DESTINATION "${LAMMPS_POTENTIALS_DIR}") - file(RENAME "${LAMMPS_POTENTIALS_DIR}/${pot}.${TMP_EXT}" "${LAMMPS_POTENTIALS_DIR}/${pot}") - endif() - endforeach() + if(DOWNLOAD_POTENTIALS) + if(EXISTS "${pkgfolder}/potentials.txt") + file(STRINGS "${pkgfolder}/potentials.txt" linelist REGEX "^[^#].") + foreach(line ${linelist}) + string(FIND ${line} " " blank) + math(EXPR plusone "${blank}+1") + string(SUBSTRING ${line} 0 ${blank} pot) + string(SUBSTRING ${line} ${plusone} -1 sum) + if(EXISTS "${LAMMPS_POTENTIALS_DIR}/${pot}") + file(MD5 "${LAMMPS_POTENTIALS_DIR}/${pot}" oldsum) + endif() + if(NOT sum STREQUAL oldsum) + message(STATUS "Downloading external potential ${pot} from ${LAMMPS_POTENTIALS_URL}") + string(RANDOM LENGTH 10 TMP_EXT) + file(DOWNLOAD "${LAMMPS_POTENTIALS_URL}/${pot}.${sum}" "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" + EXPECTED_HASH MD5=${sum} SHOW_PROGRESS) + file(COPY "${CMAKE_BINARY_DIR}/${pot}.${TMP_EXT}" DESTINATION "${LAMMPS_POTENTIALS_DIR}") + file(RENAME "${LAMMPS_POTENTIALS_DIR}/${pot}.${TMP_EXT}" "${LAMMPS_POTENTIALS_DIR}/${pot}") + endif() + endforeach() + endif() endif() endfunction(FetchPotentials)