Toolchain: Move libFCI installation to stage7 (#5442)

This commit is contained in:
SY Wang 2026-06-24 19:27:56 +08:00 committed by GitHub
parent 16a96a07a2
commit f3f9c0959e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 8 additions and 80 deletions

View file

@ -846,7 +846,7 @@ if(CP2K_USE_LIBINT2)
endif()
if(CP2K_USE_LIBFCI)
find_package(LibFCI REQUIRED)
find_package(libfci REQUIRED)
endif()
# Spglib

View file

@ -1,55 +0,0 @@
#!-------------------------------------------------------------------------------------------------!
#! CP2K: A general program to perform molecular dynamics simulations !
#! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
#! !
#! SPDX-License-Identifier: GPL-2.0-or-later !
#!-------------------------------------------------------------------------------------------------!
include(FindPackageHandleStandardArgs)
include(cp2k_utils)
find_package(libfci CONFIG QUIET)
if(libfci_FOUND AND TARGET libfci::fci)
set(LibFCI_FOUND TRUE)
set(CP2K_LIBFCI_FOUND TRUE)
set(CP2K_LIBFCI_LINK_LIBRARIES libfci::fci)
get_target_property(CP2K_LIBFCI_INCLUDE_DIRS libfci::fci
INTERFACE_INCLUDE_DIRECTORIES)
else()
find_package(PkgConfig QUIET)
cp2k_set_default_paths(LIBFCI "libfci")
if(PKG_CONFIG_FOUND)
pkg_check_modules(CP2K_LIBFCI IMPORTED_TARGET GLOBAL libfci)
endif()
if(NOT CP2K_LIBFCI_FOUND)
cp2k_find_libraries(LIBFCI "fci")
cp2k_include_dirs(LIBFCI "libfci.h")
endif()
find_package_handle_standard_args(LibFCI DEFAULT_MSG CP2K_LIBFCI_INCLUDE_DIRS
CP2K_LIBFCI_LINK_LIBRARIES)
endif()
if(CP2K_LIBFCI_FOUND)
if(NOT TARGET cp2k::libfci::fci)
add_library(cp2k::libfci::fci INTERFACE IMPORTED)
endif()
if(TARGET libfci::fci)
target_link_libraries(cp2k::libfci::fci INTERFACE libfci::fci)
elseif(TARGET PkgConfig::CP2K_LIBFCI)
target_link_libraries(cp2k::libfci::fci INTERFACE PkgConfig::CP2K_LIBFCI)
else()
set_target_properties(
cp2k::libfci::fci PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
"${CP2K_LIBFCI_INCLUDE_DIRS}")
target_link_libraries(cp2k::libfci::fci
INTERFACE ${CP2K_LIBFCI_LINK_LIBRARIES})
endif()
endif()
mark_as_advanced(CP2K_LIBFCI_FOUND CP2K_LIBFCI_INCLUDE_DIRS
CP2K_LIBFCI_LINK_LIBRARIES)

View file

@ -1787,7 +1787,7 @@ target_link_libraries(
$<$<BOOL:${CP2K_USE_MIMIC}>:CP2K::MIMIC::mclf>
$<$<BOOL:${CP2K_USE_MIMIC}>:CP2K::MIMIC::mcl>
$<$<BOOL:${CP2K_USE_LIBINT2}>:Libint2::int2>
$<$<BOOL:${CP2K_USE_LIBFCI}>:cp2k::libfci::fci>
$<$<BOOL:${CP2K_USE_LIBFCI}>:libfci::fci>
$<$<BOOL:${CP2K_USE_COSMA}>:cp2k::cosma>
$<$<BOOL:${CP2K_USE_DLAF}>:${CP2K_DLAF_FORTRAN_TARGET}>
$<$<BOOL:${CP2K_USE_GREENX}>:cp2k::greenx>

View file

@ -47,56 +47,39 @@ case "$with_libfci" in
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_VERBOSE_MAKEFILE=ON \
.. > cmake.log 2>&1 || tail_excerpt cmake.log
CMAKE_BUILD_PARALLEL_LEVEL="$(get_nprocs)" cmake --build . > build.log 2>&1 || tail_excerpt build.log
CMAKE_BUILD_PARALLEL_LEVEL="$(get_nprocs)" cmake --build . --target install > install.log 2>&1 || tail_excerpt install.log
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage8/$(basename "${SCRIPT_NAME}")"
make install -j $(get_nprocs) > build.log 2>&1 || tail_excerpt build.log
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage7/$(basename "${SCRIPT_NAME}")"
cd ../..
fi
LIBFCI_CFLAGS="-I'${pkg_install_dir}/include'"
LIBFCI_LDFLAGS="-L'${pkg_install_dir}/lib' -Wl,-rpath,'${pkg_install_dir}/lib'"
;;
__SYSTEM__)
echo "==================== Finding libfci from system paths ===================="
check_lib -lfci "libfci"
add_include_from_paths LIBFCI_CFLAGS "libfci.h" $INCLUDE_PATHS
add_lib_from_paths LIBFCI_LDFLAGS "libfci.*" $LIB_PATHS
pkg_install_dir="$(dirname $(dirname $(find_in_paths "libfci.*" $LIB_PATHS)))"
;;
*)
echo "==================== Linking libfci to user paths ===================="
pkg_install_dir="$with_libfci"
pkg_install_dir="${with_libfci}"
LIBFCI_LIBDIR="${pkg_install_dir}/lib"
[ -d "${pkg_install_dir}/lib64" ] && LIBFCI_LIBDIR="${pkg_install_dir}/lib64"
check_dir "${LIBFCI_LIBDIR}"
check_dir "${pkg_install_dir}/include"
LIBFCI_CFLAGS="-I'${pkg_install_dir}/include'"
LIBFCI_LDFLAGS="-L'${LIBFCI_LIBDIR}' -Wl,-rpath,'${LIBFCI_LIBDIR}'"
;;
esac
if [ "$with_libfci" != "__DONTUSE__" ]; then
LIBFCI_LIBS="-lfci -lstdc++"
cat << EOF > "${BUILDDIR}/setup_libfci"
export LIBFCI_VER="${libfci_ver}"
export LIBFCI_ROOT="${pkg_install_dir}"
EOF
if [ "$with_libfci" != "__SYSTEM__" ]; then
cat << EOF >> "${BUILDDIR}/setup_libfci"
prepend_path LD_LIBRARY_PATH "${pkg_install_dir}/lib"
prepend_path LD_RUN_PATH "${pkg_install_dir}/lib"
prepend_path LIBRARY_PATH "${pkg_install_dir}/lib"
prepend_path CPATH "${pkg_install_dir}/include"
prepend_path PKG_CONFIG_PATH "${pkg_install_dir}/lib/pkgconfig"
prepend_path CMAKE_PREFIX_PATH "${pkg_install_dir}"
EOF
fi
cat << EOF >> "${BUILDDIR}/setup_libfci"
export LIBFCI_CFLAGS="${LIBFCI_CFLAGS}"
export LIBFCI_LDFLAGS="${LIBFCI_LDFLAGS}"
export LIBFCI_LIBS="${LIBFCI_LIBS}"
export CP_DFLAGS="\${CP_DFLAGS} -D__LIBFCI"
export CP_CFLAGS="\${CP_CFLAGS} ${LIBFCI_CFLAGS}"
export CP_LDFLAGS="\${CP_LDFLAGS} ${LIBFCI_LDFLAGS}"
export CP_LIBS="${LIBFCI_LIBS} \${CP_LIBS}"
export LIBFCI_ROOT="${pkg_install_dir}"
EOF
filter_setup "${BUILDDIR}/setup_libfci" "${SETUPFILE}"
fi

View file

@ -8,6 +8,7 @@
./scripts/stage7/install_spglib.sh
./scripts/stage7/install_libvori.sh
./scripts/stage7/install_libsmeagol.sh
./scripts/stage7/install_libfci.sh
./scripts/stage7/install_fmt.sh
#EOF

View file

@ -9,7 +9,6 @@
./scripts/stage8/install_spfft.sh
./scripts/stage8/install_spla.sh
./scripts/stage8/install_sirius.sh
./scripts/stage8/install_libfci.sh
./scripts/stage8/install_trexio.sh
./scripts/stage8/install_mcl.sh
#EOF