diff --git a/make_cp2k.sh b/make_cp2k.sh index 2813afdef1..e0cb565ca1 100755 --- a/make_cp2k.sh +++ b/make_cp2k.sh @@ -641,7 +641,6 @@ if [[ ! -d "${CMAKE_BUILD_PATH}" ]]; then -DCP2K_USE_LIBXSMM=ON \ -DCP2K_USE_MPI=ON \ -DCP2K_USE_OPENPMD=ON \ - -DCP2K_USE_TBLITE=OFF \ -Werror=dev |& tee "${CMAKE_BUILD_PATH}/cmake.log" EXIT_CODE=$? @@ -659,7 +658,6 @@ if [[ ! -d "${CMAKE_BUILD_PATH}" ]]; then -DCP2K_USE_LIBXSMM=ON \ -DCP2K_USE_MPI=OFF \ -DCP2K_USE_OPENPMD=OFF \ - -DCP2K_USE_TBLITE=OFF \ -Werror=dev |& tee "${CMAKE_BUILD_PATH}/cmake.log" EXIT_CODE=$? diff --git a/tools/spack/cp2k_deps_psmp.yaml b/tools/spack/cp2k_deps_psmp.yaml index 8cf76845c1..f964e4d1e2 100644 --- a/tools/spack/cp2k_deps_psmp.yaml +++ b/tools/spack/cp2k_deps_psmp.yaml @@ -181,7 +181,7 @@ spack: - "spfft@1.1.1" - "spglib@2.5.0" - "spla@1.6.1" -# - "tblite@0.5.0 CMake build error for mctc-lib: target OpenMP::OpenMP_Fortran not found" + - "tblite@0.5.0" - "trexio@2.5.0" view: diff --git a/tools/spack/cp2k_deps_ssmp.yaml b/tools/spack/cp2k_deps_ssmp.yaml index c71abf390a..ec9a1510ec 100644 --- a/tools/spack/cp2k_deps_ssmp.yaml +++ b/tools/spack/cp2k_deps_ssmp.yaml @@ -110,7 +110,7 @@ spack: - "pace@2025.12.4" - "py-torch@2.9.0" - "spglib@2.5.0" -# - "tblite@0.5.0" CMake build error for mctc-lib: target OpenMP::OpenMP_Fortran not found + - "tblite@0.5.0" - "trexio@2.5.0" view: diff --git a/tools/spack/spack_repo/cp2k_dev/packages/tblite/package.py b/tools/spack/spack_repo/cp2k_dev/packages/tblite/package.py new file mode 100644 index 0000000000..1b029e6fbc --- /dev/null +++ b/tools/spack/spack_repo/cp2k_dev/packages/tblite/package.py @@ -0,0 +1,76 @@ +# Copyright Spack Project Developers. See COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack_repo.builtin.build_systems import cmake, meson +from spack_repo.builtin.build_systems.cmake import CMakePackage +from spack_repo.builtin.build_systems.meson import MesonPackage + +from spack.package import * + + +class Tblite(CMakePackage, MesonPackage): + """Light-weight tight-binding framework""" + + homepage = "https://tblite.readthedocs.io" + url = "https://github.com/tblite/tblite/releases/download/v0.3.0/tblite-0.3.0.tar.xz" + git = "https://github.com/tblite/tblite.git" + + maintainers("awvwgk") + + license("LGPL-3.0-or-later") + + version("0.5.0", sha256="e8a70b72ed0a0db0621c7958c63667a9cd008c97c868a4a417ff1bc262052ea8") + version("0.4.0", sha256="5c2249b568bfd3b987d3b28f2cbfddd5c37f675b646e17c1e750428380af464b") + version("0.3.0", sha256="46d77c120501ac55ed6a64dea8778d6593b26fb0653c591f8e8c985e35884f0a") + + build_system("cmake", "meson", default="meson") + + variant("openmp", default=True, description="Use OpenMP parallelisation") + variant("python", default=False, description="Build Python extension module") + + depends_on("c", type="build") # generated + depends_on("fortran", type="build") # generated + + depends_on("blas") + depends_on("lapack") + +# for build_system in ["cmake", "meson"]: +# depends_on( +# f"mctc-lib@0.5: build_system={build_system}", when=f"build_system={build_system}" +# ) +# depends_on( +# f"simple-dftd3@1.2: build_system={build_system}", when=f"build_system={build_system}" +# ) +# depends_on(f"dftd4@3: build_system={build_system}", when=f"build_system={build_system}") +# depends_on(f"toml-f build_system={build_system}", when=f"build_system={build_system}") + + depends_on("meson@0.57.2:", type="build") # mesonbuild/meson#8377 + depends_on("pkgconfig", type="build") + depends_on("py-cffi", when="+python") + depends_on("py-numpy", when="+python") + depends_on("python@3.6:", when="+python") + + extends("python", when="+python") + + +class MesonBuilder(meson.MesonBuilder): + def meson_args(self): + lapack = self.spec["lapack"].libs.names[0] + if lapack == "lapack": + lapack = "netlib" + elif lapack.startswith("mkl"): + lapack = "mkl" + elif lapack != "openblas": + lapack = "auto" + + return [ + "-Dlapack={0}".format(lapack), + "-Dopenmp={0}".format(str("+openmp" in self.spec).lower()), + "-Dpython={0}".format(str("+python" in self.spec).lower()), + ] + + +class CMakeBuilder(cmake.CMakeBuilder): + def cmake_args(self): + return [self.define_from_variant("WITH_OpenMP", "openmp")]