summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/cp2k
diff options
context:
space:
mode:
authorGlenn Johnson <glenn-johnson@uiowa.edu>2023-01-16 07:13:40 -0600
committerGitHub <noreply@github.com>2023-01-16 14:13:40 +0100
commit645faad37977708bad97c7337e9625a93898ce94 (patch)
tree64f3cbc2443918c9d217cf3da29491c7b78b0d5d /var/spack/repos/builtin/packages/cp2k
parentd0866e4d02a7dc07815adf2c844f262aeb7ba48a (diff)
downloadspack-645faad37977708bad97c7337e9625a93898ce94.tar.gz
spack-645faad37977708bad97c7337e9625a93898ce94.tar.bz2
spack-645faad37977708bad97c7337e9625a93898ce94.tar.xz
spack-645faad37977708bad97c7337e9625a93898ce94.zip
cp2k: add v2022.2, update CUDA settings (#34757)
Diffstat (limited to 'var/spack/repos/builtin/packages/cp2k')
-rw-r--r--var/spack/repos/builtin/packages/cp2k/package.py29
1 files changed, 25 insertions, 4 deletions
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index 452fd8c552..11d6daad5e 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -23,6 +23,7 @@ class Cp2k(MakefilePackage, CudaPackage):
maintainers = ["dev-zero"]
+ version("2022.2", sha256="1a473dea512fe264bb45419f83de432d441f90404f829d89cbc3a03f723b8354")
version("2022.1", sha256="2c34f1a7972973c62d471cd35856f444f11ab22f2ff930f6ead20f3454fd228b")
version("9.1", sha256="fedb4c684a98ad857cd49b69a3ae51a73f85a9c36e9cb63e3b02320c74454ce6")
version("8.2", sha256="2e24768720efed1a5a4a58e83e2aca502cd8b95544c21695eb0de71ed652f20a")
@@ -242,6 +243,10 @@ class Cp2k(MakefilePackage, CudaPackage):
when="@8.2",
)
+ def url_for_version(self, version):
+ url = "https://github.com/cp2k/cp2k/releases/download/v{0}/cp2k-{0}.tar.bz2"
+ return url.format(version)
+
@property
def makefile_architecture(self):
return "{0.architecture}-{0.compiler.name}".format(self.spec)
@@ -569,6 +574,9 @@ class Cp2k(MakefilePackage, CudaPackage):
]
if spec.satisfies("@9:"):
+ if spec.satisfies("@2022:"):
+ cppflags += ["-D__OFFLOAD_CUDA"]
+
acc_compiler_var = "OFFLOAD_CC"
acc_flags_var = "OFFLOAD_FLAGS"
cppflags += [
@@ -577,6 +585,15 @@ class Cp2k(MakefilePackage, CudaPackage):
"-DOFFLOAD_TARGET=cuda",
]
libs += ["-lcublas"]
+
+ if spec.satisfies("+cuda_fft"):
+ if spec.satisfies("@:9"):
+ cppflags += ["-D__PW_CUDA"]
+
+ libs += ["-lcufft"]
+ else:
+ if spec.satisfies("@2022:"):
+ cppflags += ["-D__NO_OFFLOAD_PW"]
else:
acc_compiler_var = "NVCC"
acc_flags_var = "NVFLAGS"
@@ -587,9 +604,9 @@ class Cp2k(MakefilePackage, CudaPackage):
else:
cppflags += ["-D__DBCSR_ACC"]
- if spec.satisfies("+cuda_fft"):
- cppflags += ["-D__PW_CUDA"]
- libs += ["-lcufft", "-lcublas"]
+ if spec.satisfies("+cuda_fft"):
+ cppflags += ["-D__PW_CUDA"]
+ libs += ["-lcufft", "-lcublas"]
cuda_arch = spec.variants["cuda_arch"].value[0]
if cuda_arch:
@@ -762,7 +779,11 @@ class Cp2k(MakefilePackage, CudaPackage):
to generate and override entire libcp2k.pc.
"""
if self.spec.satisfies("@9.1:"):
- with open(join_path(self.prefix.lib.pkgconfig, "libcp2k.pc"), "r+") as handle:
+ pkgconfig_file = join_path(self.prefix.lib.pkgconfig, "libcp2k.pc")
+ filter_file(r"(^includedir=).*", r"\1{0}".format(self.prefix.include), pkgconfig_file)
+ filter_file(r"(^libdir=).*", r"\1{0}".format(self.prefix.lib), pkgconfig_file)
+
+ with open(pkgconfig_file, "r+") as handle:
content = handle.read().rstrip()
content += " " + self.spec["blas"].libs.ld_flags