summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/cp2k/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/cp2k/package.py')
-rw-r--r--var/spack/repos/builtin/packages/cp2k/package.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index 94dfbfec40..27deecf784 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -276,12 +276,10 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
depends_on("wannier90", when="@3.0+mpi")
with when("build_system=cmake"):
- depends_on("dbcsr")
- depends_on("dbcsr@2.6:", when="@2023.2:")
+ depends_on("dbcsr@2.6:")
depends_on("dbcsr+openmp", when="+openmp")
depends_on("dbcsr+cuda", when="+cuda")
depends_on("dbcsr+rocm", when="+rocm")
- conflicts("+mpi_f08", when="@:2023.2")
# CP2K needs compiler specific compilation flags, e.g. optflags
conflicts("%apple-clang")
@@ -352,6 +350,7 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
# These patches backport 2023.x fixes to previous versions
patch("backport_avoid_null_2022.x.patch", when="@2022.1:2022.2 %aocc@:4.0")
patch("backport_avoid_null_9.1.patch", when="@9.1 %aocc@:4.0")
+ patch("cmake-fixes-2023.2.patch", when="@2023.2 build_system=cmake")
# Patch for an undefined constant due to incompatible changes in ELPA
@when("@9.1:2022.2 +elpa")
@@ -427,9 +426,13 @@ class Cp2k(MakefilePackage, CudaPackage, CMakePackage, ROCmPackage):
ldflags = []
libs = []
- # CP2K Makefile doesn't set C standard, but the source code uses
- # C99-style for-loops with inline definition of iterating variable.
- cflags.append(self.compiler.c99_flag)
+ # CP2K Makefile doesn't set C standard
+ if spec.satisfies("@2023.2:"):
+ # Use of DBL_DECIMAL_DIG
+ cflags.append(self.compiler.c11_flag)
+ else:
+ # C99-style for-loops with inline definition of iterating variable.
+ cflags.append(self.compiler.c99_flag)
if "%intel" in spec:
cflags.append("-fp-model precise")