From 97ed60c0cfc7b131c4fb21d7d302a1a0c4b87142 Mon Sep 17 00:00:00 2001 From: "njzjz-bot (driven by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5))[bot]" <48687836+njzjz-bot@users.noreply.github.com> Date: Fri, 29 May 2026 16:48:10 +0000 Subject: [PATCH 1/5] fix(cmake): install DeePMD config for C library builds Installing DeePMD-kit from a precompiled C library skipped the CMake package config generation, so LAMMPS built-in mode could not resolve find_package(DeePMD). Generate DeePMDConfig.cmake and DeePMDTargets.cmake for DEEPMD_C_ROOT builds, and include the same package metadata in the packaged libdeepmd_c tarball. Authored by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5) --- source/CMakeLists.txt | 28 +++++++++++---------- source/api_c/CMakeLists.txt | 13 ++++++++++ source/cmake/Config.cmake.in | 2 +- source/cmake/DeePMDImportedTargets.cmake.in | 5 ++++ source/cmake/DeePMDPackagedTargets.cmake.in | 5 ++++ 5 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 source/cmake/DeePMDImportedTargets.cmake.in create mode 100644 source/cmake/DeePMDPackagedTargets.cmake.in diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 3bfec12490..011bfb1a7c 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -584,9 +584,7 @@ add_custom_target(lammps COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_lammps.cmake) # add configure file -if(BUILD_CPP_IF - AND NOT BUILD_PY_IF - AND NOT DEEPMD_C_ROOT) +if(BUILD_CPP_IF AND NOT BUILD_PY_IF) include(CMakePackageConfigHelpers) set(targets_export_name ${CMAKE_PROJECT_NAME}Targets @@ -594,24 +592,28 @@ if(BUILD_CPP_IF set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated" CACHE INTERNAL "") - set(cmake_files_install_dir - "${CMAKE_INSTALL_PREFIX}/lib/cmake/${CMAKE_PROJECT_NAME}") + set(cmake_files_install_dir "lib/cmake/${CMAKE_PROJECT_NAME}") set(version_file "${generated_dir}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake") write_basic_package_version_file( ${version_file} VERSION $ COMPATIBILITY AnyNewerVersion) - install( - EXPORT ${targets_export_name} - NAMESPACE ${CMAKE_PROJECT_NAME}:: - DESTINATION ${cmake_files_install_dir}) set(config_file "${generated_dir}/${CMAKE_PROJECT_NAME}Config.cmake") configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Config.cmake.in" "${config_file}" INSTALL_DESTINATION ${cmake_files_install_dir}) install(FILES ${version_file} ${config_file} DESTINATION ${cmake_files_install_dir}) -endif( - BUILD_CPP_IF - AND NOT BUILD_PY_IF - AND NOT DEEPMD_C_ROOT) + if(DEEPMD_C_ROOT) + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/DeePMDImportedTargets.cmake.in" + "${generated_dir}/${targets_export_name}.cmake" @ONLY) + install(FILES "${generated_dir}/${targets_export_name}.cmake" + DESTINATION ${cmake_files_install_dir}) + else() + install( + EXPORT ${targets_export_name} + NAMESPACE ${CMAKE_PROJECT_NAME}:: + DESTINATION ${cmake_files_install_dir}) + endif() +endif() diff --git a/source/api_c/CMakeLists.txt b/source/api_c/CMakeLists.txt index f0b36a62d7..5834f9f921 100644 --- a/source/api_c/CMakeLists.txt +++ b/source/api_c/CMakeLists.txt @@ -59,6 +59,19 @@ if(PACKAGE_C) install(TARGETS ${libname} DESTINATION ${CMAKE_BINARY_DIR}/libdeepmd_c/lib) install(TARGETS ${LIB_DEEPMD_OP} DESTINATION ${CMAKE_BINARY_DIR}/libdeepmd_c/lib) + + set(cmake_files_install_dir "${CMAKE_BINARY_DIR}/libdeepmd_c/lib/cmake/${CMAKE_PROJECT_NAME}") + configure_package_config_file( + "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Config.cmake.in" + "${config_file}" + INSTALL_DESTINATION "lib/cmake/${CMAKE_PROJECT_NAME}") + install(FILES ${version_file} ${config_file} + DESTINATION "${cmake_files_install_dir}") + configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/DeePMDPackagedTargets.cmake.in" + "${generated_dir}/${targets_export_name}.cmake" @ONLY) + install(FILES "${generated_dir}/${targets_export_name}.cmake" + DESTINATION "${cmake_files_install_dir}") endif() if(CMAKE_TESTING_ENABLED) diff --git a/source/cmake/Config.cmake.in b/source/cmake/Config.cmake.in index 08a8cbfa78..f457e43ce4 100644 --- a/source/cmake/Config.cmake.in +++ b/source/cmake/Config.cmake.in @@ -2,4 +2,4 @@ include(CMakeFindDependencyMacro) include("${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake") -check_required_components("@project_name@") +check_required_components("@CMAKE_PROJECT_NAME@") diff --git a/source/cmake/DeePMDImportedTargets.cmake.in b/source/cmake/DeePMDImportedTargets.cmake.in new file mode 100644 index 0000000000..ab5e0a85dc --- /dev/null +++ b/source/cmake/DeePMDImportedTargets.cmake.in @@ -0,0 +1,5 @@ +add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) +set_target_properties( + @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ + PROPERTIES IMPORTED_LOCATION "@deepmd_c@" + INTERFACE_INCLUDE_DIRECTORIES "@DEEPMD_INCLUDE_C_DIR@/deepmd") diff --git a/source/cmake/DeePMDPackagedTargets.cmake.in b/source/cmake/DeePMDPackagedTargets.cmake.in new file mode 100644 index 0000000000..6a78df06be --- /dev/null +++ b/source/cmake/DeePMDPackagedTargets.cmake.in @@ -0,0 +1,5 @@ +add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) +set_target_properties( + @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ + PROPERTIES IMPORTED_LOCATION "${PACKAGE_PREFIX_DIR}/lib/@CMAKE_SHARED_LIBRARY_PREFIX@@LIB_DEEPMD_C@@CMAKE_SHARED_LIBRARY_SUFFIX@" + INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include/deepmd") From 18a4171b7a92d77ea74d6e1bf93a20cd8ab602c2 Mon Sep 17 00:00:00 2001 From: "njzjz-bot (driven by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5))[bot]" <48687836+njzjz-bot@users.noreply.github.com> Date: Fri, 29 May 2026 17:05:03 +0000 Subject: [PATCH 2/5] fix(cmake): address C package metadata comments Authored by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5) --- source/CMakeLists.txt | 2 +- source/api_c/CMakeLists.txt | 11 ++++++++++- source/cmake/DeePMDImportedTargets.cmake.in | 2 +- source/cmake/DeePMDPackagedTargets.cmake.in | 2 +- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 011bfb1a7c..156f08fc3b 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -1,6 +1,7 @@ # new in 3.25: RUN_OUTPUT_STDOUT_VARIABLE cmake_minimum_required(VERSION 3.25.2) project(DeePMD) +include(CMakePackageConfigHelpers) option(ENABLE_TENSORFLOW "Enable TensorFlow interface" OFF) option(ENABLE_PYTORCH "Enable PyTorch interface" OFF) @@ -585,7 +586,6 @@ add_custom_target(lammps COMMAND ${CMAKE_COMMAND} -P # add configure file if(BUILD_CPP_IF AND NOT BUILD_PY_IF) - include(CMakePackageConfigHelpers) set(targets_export_name ${CMAKE_PROJECT_NAME}Targets CACHE INTERNAL "") diff --git a/source/api_c/CMakeLists.txt b/source/api_c/CMakeLists.txt index 5834f9f921..de5c17598c 100644 --- a/source/api_c/CMakeLists.txt +++ b/source/api_c/CMakeLists.txt @@ -60,7 +60,16 @@ if(PACKAGE_C) install(TARGETS ${LIB_DEEPMD_OP} DESTINATION ${CMAKE_BINARY_DIR}/libdeepmd_c/lib) - set(cmake_files_install_dir "${CMAKE_BINARY_DIR}/libdeepmd_c/lib/cmake/${CMAKE_PROJECT_NAME}") + set(cmake_files_install_dir + "${CMAKE_BINARY_DIR}/libdeepmd_c/lib/cmake/${CMAKE_PROJECT_NAME}") + set(targets_export_name ${CMAKE_PROJECT_NAME}Targets) + set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated") + set(version_file "${generated_dir}/${CMAKE_PROJECT_NAME}ConfigVersion.cmake") + write_basic_package_version_file( + ${version_file} + VERSION $ + COMPATIBILITY AnyNewerVersion) + set(config_file "${generated_dir}/${CMAKE_PROJECT_NAME}Config.cmake") configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Config.cmake.in" "${config_file}" diff --git a/source/cmake/DeePMDImportedTargets.cmake.in b/source/cmake/DeePMDImportedTargets.cmake.in index ab5e0a85dc..57555e8076 100644 --- a/source/cmake/DeePMDImportedTargets.cmake.in +++ b/source/cmake/DeePMDImportedTargets.cmake.in @@ -2,4 +2,4 @@ add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) set_target_properties( @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ PROPERTIES IMPORTED_LOCATION "@deepmd_c@" - INTERFACE_INCLUDE_DIRECTORIES "@DEEPMD_INCLUDE_C_DIR@/deepmd") + INTERFACE_INCLUDE_DIRECTORIES "@DEEPMD_INCLUDE_C_DIR@") diff --git a/source/cmake/DeePMDPackagedTargets.cmake.in b/source/cmake/DeePMDPackagedTargets.cmake.in index 6a78df06be..6a958fe347 100644 --- a/source/cmake/DeePMDPackagedTargets.cmake.in +++ b/source/cmake/DeePMDPackagedTargets.cmake.in @@ -2,4 +2,4 @@ add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) set_target_properties( @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ PROPERTIES IMPORTED_LOCATION "${PACKAGE_PREFIX_DIR}/lib/@CMAKE_SHARED_LIBRARY_PREFIX@@LIB_DEEPMD_C@@CMAKE_SHARED_LIBRARY_SUFFIX@" - INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include/deepmd") + INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include") From 6dadb2f0c683aa3d05b3bdf8387c0aafa4629ae7 Mon Sep 17 00:00:00 2001 From: "njzjz-bot (driven by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5))[bot]" <48687836+njzjz-bot@users.noreply.github.com> Date: Fri, 29 May 2026 17:44:22 +0000 Subject: [PATCH 3/5] style(cmake): apply cmake-format Authored by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5) --- source/api_c/CMakeLists.txt | 3 +-- source/cmake/DeePMDImportedTargets.cmake.in | 4 ++-- source/cmake/DeePMDPackagedTargets.cmake.in | 6 ++++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/source/api_c/CMakeLists.txt b/source/api_c/CMakeLists.txt index de5c17598c..aca0c96476 100644 --- a/source/api_c/CMakeLists.txt +++ b/source/api_c/CMakeLists.txt @@ -71,8 +71,7 @@ if(PACKAGE_C) COMPATIBILITY AnyNewerVersion) set(config_file "${generated_dir}/${CMAKE_PROJECT_NAME}Config.cmake") configure_package_config_file( - "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Config.cmake.in" - "${config_file}" + "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/Config.cmake.in" "${config_file}" INSTALL_DESTINATION "lib/cmake/${CMAKE_PROJECT_NAME}") install(FILES ${version_file} ${config_file} DESTINATION "${cmake_files_install_dir}") diff --git a/source/cmake/DeePMDImportedTargets.cmake.in b/source/cmake/DeePMDImportedTargets.cmake.in index 57555e8076..a4760fe7ee 100644 --- a/source/cmake/DeePMDImportedTargets.cmake.in +++ b/source/cmake/DeePMDImportedTargets.cmake.in @@ -1,5 +1,5 @@ add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) set_target_properties( @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ - PROPERTIES IMPORTED_LOCATION "@deepmd_c@" - INTERFACE_INCLUDE_DIRECTORIES "@DEEPMD_INCLUDE_C_DIR@") + PROPERTIES IMPORTED_LOCATION "@deepmd_c@" INTERFACE_INCLUDE_DIRECTORIES + "@DEEPMD_INCLUDE_C_DIR@") diff --git a/source/cmake/DeePMDPackagedTargets.cmake.in b/source/cmake/DeePMDPackagedTargets.cmake.in index 6a958fe347..ffbd52e5ee 100644 --- a/source/cmake/DeePMDPackagedTargets.cmake.in +++ b/source/cmake/DeePMDPackagedTargets.cmake.in @@ -1,5 +1,7 @@ add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) set_target_properties( @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ - PROPERTIES IMPORTED_LOCATION "${PACKAGE_PREFIX_DIR}/lib/@CMAKE_SHARED_LIBRARY_PREFIX@@LIB_DEEPMD_C@@CMAKE_SHARED_LIBRARY_SUFFIX@" - INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include") + PROPERTIES + IMPORTED_LOCATION + "${PACKAGE_PREFIX_DIR}/lib/@CMAKE_SHARED_LIBRARY_PREFIX@@LIB_DEEPMD_C@@CMAKE_SHARED_LIBRARY_SUFFIX@" + INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include") From 1597b76202736b0343c97a7e0a4d523dd0f5df35 Mon Sep 17 00:00:00 2001 From: "njzjz-bot (driven by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5))[bot]" <48687836+njzjz-bot@users.noreply.github.com> Date: Sat, 30 May 2026 06:22:10 +0000 Subject: [PATCH 4/5] test(cmake): verify C library package discovery Cover the downstream CMake scenario from issue #5035 by configuring a minimal consumer with find_package(DeePMD REQUIRED CONFIG) against the install prefix and linking DeePMD::deepmd_c. Authored by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5) --- source/install/build_from_c.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/source/install/build_from_c.sh b/source/install/build_from_c.sh index 903d50bb72..b367b72dcc 100755 --- a/source/install/build_from_c.sh +++ b/source/install/build_from_c.sh @@ -16,6 +16,28 @@ cd ${BUILD_TMP_DIR} cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DDEEPMD_C_ROOT=${DEEPMD_C_ROOT} -DLAMMPS_VERSION=stable_22Jul2025_update2 .. cmake --build . -j${NPROC} cmake --install . + +CONSUMER_TMP_DIR=${BUILD_TMP_DIR}/cmake-consumer +rm -rf ${CONSUMER_TMP_DIR} +mkdir -p ${CONSUMER_TMP_DIR} +cat >${CONSUMER_TMP_DIR}/CMakeLists.txt <<'EOF' +cmake_minimum_required(VERSION 3.25) +project(deepmd_c_consumer LANGUAGES CXX) +find_package(DeePMD REQUIRED CONFIG) +if(NOT TARGET DeePMD::deepmd_c) + message(FATAL_ERROR "DeePMD::deepmd_c target is missing") +endif() +add_executable(deepmd_c_consumer main.cc) +target_link_libraries(deepmd_c_consumer PRIVATE DeePMD::deepmd_c) +EOF +cat >${CONSUMER_TMP_DIR}/main.cc <<'EOF' +#include + +int main() { return 0; } +EOF +cmake -S ${CONSUMER_TMP_DIR} -B ${CONSUMER_TMP_DIR}/build -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} +cmake --build ${CONSUMER_TMP_DIR}/build -j${NPROC} + cmake --build . --target=lammps #------------------ From 809ce305e579494632ac44b47411836ff0ab8373 Mon Sep 17 00:00:00 2001 From: "njzjz-bot (driven by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5))[bot]" <48687836+njzjz-bot@users.noreply.github.com> Date: Sat, 30 May 2026 07:51:40 +0000 Subject: [PATCH 5/5] fix(cmake): make imported target config idempotent Guard the hand-written DeePMD::deepmd_c imported target templates so repeated find_package(DeePMD) calls in the same configure step do not attempt to redefine the target. Also quote path expansions in the C library build test script. Authored by OpenClaw (model: custom-chat-jinzhezeng-group/gpt-5.5) --- source/cmake/DeePMDImportedTargets.cmake.in | 12 ++++---- source/cmake/DeePMDPackagedTargets.cmake.in | 16 +++++----- source/install/build_from_c.sh | 33 +++++++++++---------- 3 files changed, 33 insertions(+), 28 deletions(-) diff --git a/source/cmake/DeePMDImportedTargets.cmake.in b/source/cmake/DeePMDImportedTargets.cmake.in index a4760fe7ee..e599bff983 100644 --- a/source/cmake/DeePMDImportedTargets.cmake.in +++ b/source/cmake/DeePMDImportedTargets.cmake.in @@ -1,5 +1,7 @@ -add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) -set_target_properties( - @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ - PROPERTIES IMPORTED_LOCATION "@deepmd_c@" INTERFACE_INCLUDE_DIRECTORIES - "@DEEPMD_INCLUDE_C_DIR@") +if(NOT TARGET @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@) + add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) + set_target_properties( + @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ + PROPERTIES IMPORTED_LOCATION "@deepmd_c@" INTERFACE_INCLUDE_DIRECTORIES + "@DEEPMD_INCLUDE_C_DIR@") +endif() diff --git a/source/cmake/DeePMDPackagedTargets.cmake.in b/source/cmake/DeePMDPackagedTargets.cmake.in index ffbd52e5ee..6a97f72c98 100644 --- a/source/cmake/DeePMDPackagedTargets.cmake.in +++ b/source/cmake/DeePMDPackagedTargets.cmake.in @@ -1,7 +1,9 @@ -add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) -set_target_properties( - @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ - PROPERTIES - IMPORTED_LOCATION - "${PACKAGE_PREFIX_DIR}/lib/@CMAKE_SHARED_LIBRARY_PREFIX@@LIB_DEEPMD_C@@CMAKE_SHARED_LIBRARY_SUFFIX@" - INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include") +if(NOT TARGET @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@) + add_library(@CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ SHARED IMPORTED) + set_target_properties( + @CMAKE_PROJECT_NAME@::@LIB_DEEPMD_C@ + PROPERTIES + IMPORTED_LOCATION + "${PACKAGE_PREFIX_DIR}/lib/@CMAKE_SHARED_LIBRARY_PREFIX@@LIB_DEEPMD_C@@CMAKE_SHARED_LIBRARY_SUFFIX@" + INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/include") +endif() diff --git a/source/install/build_from_c.sh b/source/install/build_from_c.sh index b367b72dcc..2ec76a46b9 100755 --- a/source/install/build_from_c.sh +++ b/source/install/build_from_c.sh @@ -1,42 +1,43 @@ set -e -SCRIPT_PATH=$(dirname $(realpath -s $0)) -if [ -z "$INSTALL_PREFIX" ]; then - INSTALL_PREFIX=$(realpath -s ${SCRIPT_PATH}/../../dp) +SCRIPT_PATH=$(dirname "$(realpath -s "$0")") +if [ -z "${INSTALL_PREFIX}" ]; then + INSTALL_PREFIX=$(realpath -s "${SCRIPT_PATH}/../../dp") fi -mkdir -p ${INSTALL_PREFIX} +mkdir -p "${INSTALL_PREFIX}" echo "Installing DeePMD-kit to ${INSTALL_PREFIX}" NPROC=$(nproc --all) #------------------ -BUILD_TMP_DIR=${SCRIPT_PATH}/../build -mkdir -p ${BUILD_TMP_DIR} -cd ${BUILD_TMP_DIR} -cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} -DDEEPMD_C_ROOT=${DEEPMD_C_ROOT} -DLAMMPS_VERSION=stable_22Jul2025_update2 .. -cmake --build . -j${NPROC} +BUILD_TMP_DIR="${SCRIPT_PATH}/../build" +mkdir -p "${BUILD_TMP_DIR}" +cd "${BUILD_TMP_DIR}" +cmake -DCMAKE_INSTALL_PREFIX="${INSTALL_PREFIX}" -DDEEPMD_C_ROOT="${DEEPMD_C_ROOT}" -DLAMMPS_VERSION=stable_22Jul2025_update2 .. +cmake --build . -j"${NPROC}" cmake --install . -CONSUMER_TMP_DIR=${BUILD_TMP_DIR}/cmake-consumer -rm -rf ${CONSUMER_TMP_DIR} -mkdir -p ${CONSUMER_TMP_DIR} -cat >${CONSUMER_TMP_DIR}/CMakeLists.txt <<'EOF' +CONSUMER_TMP_DIR="${BUILD_TMP_DIR}/cmake-consumer" +rm -rf "${CONSUMER_TMP_DIR}" +mkdir -p "${CONSUMER_TMP_DIR}" +cat >"${CONSUMER_TMP_DIR}/CMakeLists.txt" <<'EOF' cmake_minimum_required(VERSION 3.25) project(deepmd_c_consumer LANGUAGES CXX) find_package(DeePMD REQUIRED CONFIG) +find_package(DeePMD REQUIRED CONFIG) if(NOT TARGET DeePMD::deepmd_c) message(FATAL_ERROR "DeePMD::deepmd_c target is missing") endif() add_executable(deepmd_c_consumer main.cc) target_link_libraries(deepmd_c_consumer PRIVATE DeePMD::deepmd_c) EOF -cat >${CONSUMER_TMP_DIR}/main.cc <<'EOF' +cat >"${CONSUMER_TMP_DIR}/main.cc" <<'EOF' #include int main() { return 0; } EOF -cmake -S ${CONSUMER_TMP_DIR} -B ${CONSUMER_TMP_DIR}/build -DCMAKE_PREFIX_PATH=${INSTALL_PREFIX} -cmake --build ${CONSUMER_TMP_DIR}/build -j${NPROC} +cmake -S "${CONSUMER_TMP_DIR}" -B "${CONSUMER_TMP_DIR}/build" -DCMAKE_PREFIX_PATH="${INSTALL_PREFIX}" +cmake --build "${CONSUMER_TMP_DIR}/build" -j"${NPROC}" cmake --build . --target=lammps