mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-28 22:25:32 -04:00
Toolchain: Update to CMake 4.2.3, TREXIO 2.6.1, and workaround COSMA linking issue (#4954)
This commit is contained in:
parent
e8d1ac1fd2
commit
2b3ee83444
5 changed files with 34 additions and 13 deletions
|
|
@ -20,23 +20,21 @@ cd "${BUILDDIR}"
|
|||
case "${with_cmake}" in
|
||||
__INSTALL__)
|
||||
echo "==================== Installing CMake ===================="
|
||||
cmake_ver="3.31.7"
|
||||
cmake_ext="sh"
|
||||
cmake_ver="4.2.3"
|
||||
if [ "${OPENBLAS_ARCH}" = "arm64" ]; then
|
||||
if [ "$(uname -s)" = "Darwin" ]; then
|
||||
cmake_arch="macos-universal"
|
||||
cmake_sha256="1cb11aa2edae8551bb0f22807c6f5246bd0eb60ae9fa1474781eb4095d299aca"
|
||||
cmake_ext="tar.gz"
|
||||
cmake_sha256="c2302d3e9c48daabee5ea7c4db4b2b93b989bcc89dae8b760880e00120641b5b"
|
||||
elif [ "$(uname -s)" = "Linux" ]; then
|
||||
cmake_arch="linux-aarch64"
|
||||
cmake_sha256="ce8e32b2c1c497dd7f619124c043ac5c28a88677e390c58748dd62fe460c62a2"
|
||||
cmake_sha256="e529c75f18f27ba27c52b329efe7b1f98dc32ccc0c6d193c7ab343f888962672"
|
||||
else
|
||||
report_error ${LINENO} \
|
||||
"cmake installation for ARCH=${OPENBLAS_ARCH} under $(uname -s) is not supported. You can try to use the system installation using the flag --with-cmake=system instead."
|
||||
fi
|
||||
elif [ "${OPENBLAS_ARCH}" = "x86_64" ]; then
|
||||
cmake_arch="linux-x86_64"
|
||||
cmake_sha256="b7a5c909cdafc36042c8c9bd5765e92ff1f2528cf01720aa6dc4df294ec7e1a0"
|
||||
cmake_sha256="5bb505d5e0cca0480a330f7f27ccf52c2b8b5214c5bba97df08899f5ef650c23"
|
||||
else
|
||||
report_error ${LINENO} \
|
||||
"cmake installation for ARCH=${OPENBLAS_ARCH} under $(uname -s) is not supported. You can try to use the system installation using the flag --with-cmake=system instead."
|
||||
|
|
@ -47,14 +45,15 @@ case "${with_cmake}" in
|
|||
if verify_checksums "${install_lock_file}"; then
|
||||
echo "cmake-${cmake_ver} is already installed, skipping it."
|
||||
else
|
||||
retrieve_package "${cmake_sha256}" "cmake-${cmake_ver}-${cmake_arch}.${cmake_ext}"
|
||||
retrieve_package "${cmake_sha256}" "cmake-${cmake_ver}-${cmake_arch}.tar.gz"
|
||||
echo "Installing from scratch into ${pkg_install_dir}"
|
||||
mkdir -p ${pkg_install_dir}
|
||||
if [ "${cmake_arch}" = "macos-universal" ]; then
|
||||
tar --strip-components=3 -xvf cmake-${cmake_ver}-${cmake_arch}.${cmake_ext} -C ${pkg_install_dir} > install.log 2>&1 || tail_excerpt install.log
|
||||
strip_components=3
|
||||
else
|
||||
/bin/sh cmake-${cmake_ver}-${cmake_arch}.${cmake_ext} --prefix=${pkg_install_dir} --skip-license > install.log 2>&1 || tail_excerpt install.log
|
||||
strip_components=1
|
||||
fi
|
||||
tar --strip-components=${strip_components} -xvf cmake-${cmake_ver}-${cmake_arch}.tar.gz -C ${pkg_install_dir} > install.log 2>&1 || tail_excerpt install.log
|
||||
write_checksums "${install_lock_file}" "${SCRIPT_DIR}/stage0/$(basename ${SCRIPT_NAME})"
|
||||
fi
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ case "$with_libxc" in
|
|||
fi
|
||||
|
||||
# CP2K does not make use of fourth derivatives, so skip their compilation with -DDISABLE_KXC=OFF
|
||||
# Add "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" to keep legacy compatibility for CMake version 4.x
|
||||
CFLAGS="${LIBXC_CFLAGS}" cmake \
|
||||
-DCMAKE_INSTALL_PREFIX="${pkg_install_dir}" \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
|
|
@ -60,6 +61,7 @@ case "$with_libxc" in
|
|||
-DBUILD_TESTING=OFF \
|
||||
-DENABLE_FORTRAN=ON \
|
||||
-DDISABLE_KXC=OFF \
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
|
||||
.. > configure.log 2>&1 || tail_excerpt configure.log
|
||||
make -j $(get_nprocs) > make.log 2>&1 || tail_excerpt make.log
|
||||
make install > install.log 2>&1 || tail_excerpt install.log
|
||||
|
|
|
|||
|
|
@ -142,7 +142,15 @@ case "$with_cosma" in
|
|||
fi
|
||||
cd ..
|
||||
|
||||
cd COSMA-${cosma_ver} && mkdir build-cpu && cd build-cpu
|
||||
cd COSMA-${cosma_ver}
|
||||
# Fix two bugs in src/cosma/CMakeLists.txt:
|
||||
# 1) COSMA_GPU_VENDOR is undefined, should be COSMA_GPU_BACKEND; remove quotes around OFF
|
||||
# 2) IN_LIST generator expression: quotes break list parsing, and BLISi is a typo for BLIS
|
||||
sed -i 's|\$<\$<STREQUAL:\${COSMA_GPU_VENDOR},"OFF">:cosma::BLAS::blas>|$<$<STREQUAL:${COSMA_GPU_BACKEND},OFF>:cosma::BLAS::blas>|' \
|
||||
"src/cosma/CMakeLists.txt"
|
||||
sed -i 's|\$<\$<NOT:\$<IN_LIST:\${COSMA_BLAS_VENDOR},"MKL;BLISi;OFF">>:COSMA_WITH_BLAS>|$<$<NOT:$<IN_LIST:${COSMA_BLAS_VENDOR},MKL;BLIS;OFF>>:COSMA_WITH_BLAS>|' \
|
||||
"src/cosma/CMakeLists.txt"
|
||||
mkdir build-cpu && cd build-cpu
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX="${pkg_install_dir}" \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
|
|
|
|||
|
|
@ -35,6 +35,9 @@ case "$with_scalapack" in
|
|||
[ -d scalapack-${scalapack_ver} ] && rm -rf scalapack-${scalapack_ver}
|
||||
tar -xzf ${scalapack_pkg}
|
||||
|
||||
# Change the CMake policy requirement to keep legacy compatibility for CMake version 4.x
|
||||
sed -e 's/2.8/3.5/g' -i scalapack-${scalapack_ver}/BLACS/INSTALL/CMakeLists.txt
|
||||
|
||||
mkdir -p "scalapack-${scalapack_ver}/build"
|
||||
pushd "scalapack-${scalapack_ver}/build" > /dev/null
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
[ "${BASH_SOURCE[0]}" ] && SCRIPT_NAME="${BASH_SOURCE[0]}" || SCRIPT_NAME=$0
|
||||
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_NAME")/.." && pwd -P)"
|
||||
|
||||
trexio_ver="2.6.0"
|
||||
trexio_sha256="02b692c7792b4c8d041b1eeacdf144dca333a6ea699f66e911489768586de335"
|
||||
trexio_ver="2.6.1"
|
||||
trexio_sha256="c3694ec1528632a386a2af89199c75d70ecd45bfcc2ca1d4ccccbfa1308ad5fa"
|
||||
|
||||
source "${SCRIPT_DIR}"/common_vars.sh
|
||||
source "${SCRIPT_DIR}"/tool_kit.sh
|
||||
|
|
@ -40,8 +40,17 @@ case "$with_trexio" in
|
|||
tar -xzf trexio-${trexio_ver}.tar.gz
|
||||
cd trexio-${trexio_ver}
|
||||
|
||||
./configure --prefix="${pkg_install_dir}" --libdir="${pkg_install_dir}/lib" > configure.log 2>&1 || tail_excerpt configure.log
|
||||
CMAKE_OPTIONS="-DCMAKE_VERBOSE_MAKEFILE=ON"
|
||||
if [ "${MPI_MODE}" != "no" ]; then
|
||||
CMAKE_OPTIONS="-DCMAKE_C_COMPILER=${MPICC}"
|
||||
fi
|
||||
|
||||
mkdir build && cd build
|
||||
cmake \
|
||||
-DCMAKE_INSTALL_PREFIX="${pkg_install_dir}" \
|
||||
-DCMAKE_INSTALL_LIBDOR="lib" \
|
||||
${CMAKE_OPTIONS} \
|
||||
.. > configure.log 2>&1 || tail_excerpt configure.log
|
||||
make -j $(get_nprocs) >> make.log 2>&1 || tail_excerpt make.log
|
||||
make install > install.log 2>&1 || tail_excerpt install.log
|
||||
cd ..
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue