A few changes to quantum-espresso (#41225)
* gipaw.x installed by cmake if version >= 5c4a4ce. gipaw.x will only be installed with cmake if the qe-gipaw version is >= 5c4a4ce. Currently, QE source uses the older f5823521 one. Here a patch to the submodule_commit_hash_records to use a newer qe-gipaw version. * Update package.py * Delete var/spack/repos/builtin/packages/quantum-espresso/gipaw-eccee44.patch * Update package.py * Restoring gipaw-eccee44 patch * Update package.py * Add fox variant in quantum-espresso * Fix an issue introduced in #36484. Patches are 7.1 only. * Change plugin handling. * formatting. * Typo correction * Refine conflict --------- Co-authored-by: S. Alexis Paz <alexis.paz@gmail.com>
This commit is contained in:
parent
16bc58ea49
commit
eb4b8292b6
@ -132,6 +132,10 @@ class QuantumEspresso(CMakePackage, Package):
|
||||
# folder QE expects as a link, we issue a conflict here.
|
||||
conflicts("@:5.4.0", msg="+elpa requires QE >= 6.0")
|
||||
|
||||
variant("fox", default=False, description="Enables FoX library")
|
||||
with when("+fox"):
|
||||
conflicts("@:7.1", msg="+fox variant requires QE >= 7.2")
|
||||
|
||||
# Support for HDF5 has been added starting in version 6.1.0 and is
|
||||
# still experimental, therefore we default to False for the variant
|
||||
variant(
|
||||
@ -259,9 +263,9 @@ class QuantumEspresso(CMakePackage, Package):
|
||||
conflicts(
|
||||
"@:6.2",
|
||||
when="+gipaw",
|
||||
msg="gipaw standard support available for QE 6.3 or grater version only",
|
||||
msg="gipaw standard support available for QE 6.3 or greater version only",
|
||||
)
|
||||
|
||||
conflicts("~fox", when="@7.2: +gipaw", msg="gipaw plugin requires FoX")
|
||||
conflicts("+gipaw build_system=cmake", when="@:7.1")
|
||||
|
||||
# Only CMake will work for @6.8: %aocc
|
||||
@ -289,13 +293,13 @@ class QuantumEspresso(CMakePackage, Package):
|
||||
# see: https://gitlab.com/QEF/q-e/-/merge_requests/2005
|
||||
patch_url = "https://gitlab.com/QEF/q-e/-/commit/4ca3afd4c6f27afcf3f42415a85a353a7be1bd37.diff"
|
||||
patch_checksum = "e54d33e36a2667bd1d7e358db9fa9d4d83085264cdd47e39ce88754452ae7700"
|
||||
patch(patch_url, sha256=patch_checksum, when="@:7.1 build_system=cmake")
|
||||
patch(patch_url, sha256=patch_checksum, when="@7.1 build_system=cmake")
|
||||
|
||||
# QE 7.1 fix post-processing install part 2/2
|
||||
# see: https://gitlab.com/QEF/q-e/-/merge_requests/2007
|
||||
patch_url = "https://gitlab.com/QEF/q-e/-/commit/481a001293de2f9eec8481e02d64f679ffd83ede.diff"
|
||||
patch_checksum = "5075f2df61ef5ff70f2ec3b52a113f5636fb07f5d3d4c0115931f9b95ed61c3e"
|
||||
patch(patch_url, sha256=patch_checksum, when="@:7.1 build_system=cmake")
|
||||
patch(patch_url, sha256=patch_checksum, when="@7.1 build_system=cmake")
|
||||
|
||||
# No patch needed for QMCPACK converter beyond 7.0
|
||||
# 7.0
|
||||
@ -423,10 +427,14 @@ def cmake_args(self):
|
||||
self.define_from_variant("QE_ENABLE_MPI_GPU_AWARE", "mpigpu"),
|
||||
]
|
||||
|
||||
if "+gipaw" in spec:
|
||||
cmake_args.append(self.define("QE_ENABLE_PLUGINS", "gipaw"))
|
||||
plugins = []
|
||||
|
||||
if "+fox" in spec:
|
||||
cmake_args.append(self.define("QE_ENABLE_FOX", True))
|
||||
|
||||
if "+gipaw" in spec:
|
||||
plugins.append("gipaw")
|
||||
|
||||
if "+cuda" in self.spec:
|
||||
cmake_args.append(self.define("QE_ENABLE_OPENACC", True))
|
||||
|
||||
@ -439,7 +447,10 @@ def cmake_args(self):
|
||||
cmake_args.append(self.define("QE_ENABLE_HDF5", True))
|
||||
|
||||
if "+qmcpack" in spec:
|
||||
cmake_args.append(self.define("QE_ENABLE_PW2QMCPACK", True))
|
||||
if spec.satisfies("@:7.0"):
|
||||
cmake_args.append(self.define("QE_ENABLE_PW2QMCPACK", True))
|
||||
else:
|
||||
plugins.append("pw2qmcpack")
|
||||
|
||||
if "^armpl-gcc" in spec or "^acfl" in spec:
|
||||
cmake_args.append(self.define("BLAS_LIBRARIES", spec["blas"].libs.joined(";")))
|
||||
@ -448,6 +459,8 @@ def cmake_args(self):
|
||||
if spec.satisfies("@:7.1"):
|
||||
cmake_args.append(self.define("BLA_VENDOR", "All"))
|
||||
|
||||
if plugins:
|
||||
cmake_args.append(self.define("QE_ENABLE_PLUGINS", plugins))
|
||||
return cmake_args
|
||||
|
||||
|
||||
@ -600,6 +613,9 @@ def install(self, pkg, spec, prefix):
|
||||
else:
|
||||
options.extend(["--with-elpa-lib={0}".format(elpa.libs[0])])
|
||||
|
||||
if "+fox" in spec:
|
||||
options.append("--with-fox=yes")
|
||||
|
||||
if spec.variants["hdf5"].value != "none":
|
||||
options.append("--with-hdf5={0}".format(spec["hdf5"].prefix))
|
||||
if spec.satisfies("@6.4.1,6.5"):
|
||||
|
Loading…
Reference in New Issue
Block a user