summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorAuriane R. <48684432+aurianer@users.noreply.github.com>2024-09-05 06:33:51 +0200
committerGitHub <noreply@github.com>2024-09-04 22:33:51 -0600
commit1a4b07e730fb30cf9369634d37290b8473df079a (patch)
tree0db34f6c34ac7dabee33a9017abe9945972aa5f3 /var
parentc98045e02885fa61dab6d8278b33db580e478c5b (diff)
downloadspack-1a4b07e730fb30cf9369634d37290b8473df079a.tar.gz
spack-1a4b07e730fb30cf9369634d37290b8473df079a.tar.bz2
spack-1a4b07e730fb30cf9369634d37290b8473df079a.tar.xz
spack-1a4b07e730fb30cf9369634d37290b8473df079a.zip
Replace `if ... in spec` with `spec.satisfies` in d* and e* packages (#46126)
* Replace if ... in spec with spec.satisfies in d* and e* packages * Use virtuals for different mpi implementations in esmf * esmf: ^[virtuals=mpi] mpt * extrae: ^[virtuals=mpi] intel-oneapi-mpi --------- Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/dakota/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dalton/package.py2
-rw-r--r--var/spack/repos/builtin/packages/daos/package.py2
-rw-r--r--var/spack/repos/builtin/packages/darshan-runtime/package.py20
-rw-r--r--var/spack/repos/builtin/packages/darshan-util/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dataspaces/package.py2
-rw-r--r--var/spack/repos/builtin/packages/datatransferkit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dbcsr/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dealii/package.py26
-rw-r--r--var/spack/repos/builtin/packages/delly2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dftbplus/package.py18
-rw-r--r--var/spack/repos/builtin/packages/digitrounding/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dihydrogen/package.py14
-rw-r--r--var/spack/repos/builtin/packages/discotec/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dla-future/package.py8
-rw-r--r--var/spack/repos/builtin/packages/dock/package.py4
-rw-r--r--var/spack/repos/builtin/packages/dotnet-core-sdk/package.py2
-rw-r--r--var/spack/repos/builtin/packages/draco/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dray/package.py20
-rw-r--r--var/spack/repos/builtin/packages/duckdb/package.py2
-rw-r--r--var/spack/repos/builtin/packages/dyninst/package.py8
-rw-r--r--var/spack/repos/builtin/packages/easi/package.py8
-rw-r--r--var/spack/repos/builtin/packages/ebms/package.py2
-rw-r--r--var/spack/repos/builtin/packages/eccodes/package.py6
-rw-r--r--var/spack/repos/builtin/packages/ecmwf-atlas/package.py2
-rw-r--r--var/spack/repos/builtin/packages/eem/package.py2
-rw-r--r--var/spack/repos/builtin/packages/elbencho/package.py6
-rw-r--r--var/spack/repos/builtin/packages/elemental/package.py8
-rw-r--r--var/spack/repos/builtin/packages/elfutils/package.py6
-rw-r--r--var/spack/repos/builtin/packages/elk/package.py22
-rw-r--r--var/spack/repos/builtin/packages/elmerfem/package.py22
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py18
-rw-r--r--var/spack/repos/builtin/packages/emacs/package.py2
-rw-r--r--var/spack/repos/builtin/packages/environment-modules/package.py18
-rw-r--r--var/spack/repos/builtin/packages/eospac/package.py4
-rw-r--r--var/spack/repos/builtin/packages/erne/package.py2
-rw-r--r--var/spack/repos/builtin/packages/esmf/package.py40
-rw-r--r--var/spack/repos/builtin/packages/essl/package.py8
-rw-r--r--var/spack/repos/builtin/packages/evtgen/package.py6
-rw-r--r--var/spack/repos/builtin/packages/exabayes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exago/package.py8
-rw-r--r--var/spack/repos/builtin/packages/examinimd/package.py6
-rw-r--r--var/spack/repos/builtin/packages/exasp2/package.py2
-rw-r--r--var/spack/repos/builtin/packages/exawind/package.py6
-rw-r--r--var/spack/repos/builtin/packages/exciting/package.py18
-rw-r--r--var/spack/repos/builtin/packages/exodusii/package.py2
-rw-r--r--var/spack/repos/builtin/packages/expat/package.py4
-rw-r--r--var/spack/repos/builtin/packages/extrae/package.py4
-rw-r--r--var/spack/repos/builtin/packages/eztrace/package.py8
49 files changed, 195 insertions, 193 deletions
diff --git a/var/spack/repos/builtin/packages/dakota/package.py b/var/spack/repos/builtin/packages/dakota/package.py
index 860ca0f528..30aaa4b84f 100644
--- a/var/spack/repos/builtin/packages/dakota/package.py
+++ b/var/spack/repos/builtin/packages/dakota/package.py
@@ -94,7 +94,7 @@ class Dakota(CMakePackage):
self.define_from_variant("DAKOTA_PYTHON", "python"),
]
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.extend(
[
"-DDAKOTA_HAVE_MPI:BOOL=ON",
diff --git a/var/spack/repos/builtin/packages/dalton/package.py b/var/spack/repos/builtin/packages/dalton/package.py
index 5b658f865b..a4fb67b8bf 100644
--- a/var/spack/repos/builtin/packages/dalton/package.py
+++ b/var/spack/repos/builtin/packages/dalton/package.py
@@ -79,7 +79,7 @@ class Dalton(CMakePackage):
def cmake_args(self):
math_libs = self.spec["lapack"].libs + self.spec["blas"].libs
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
env["CC"] = self.spec["mpi"].mpicc
env["CXX"] = self.spec["mpi"].mpicxx
env["F77"] = self.spec["mpi"].mpif77
diff --git a/var/spack/repos/builtin/packages/daos/package.py b/var/spack/repos/builtin/packages/daos/package.py
index ca9ce746fd..f0b7ed25f1 100644
--- a/var/spack/repos/builtin/packages/daos/package.py
+++ b/var/spack/repos/builtin/packages/daos/package.py
@@ -55,7 +55,7 @@ class Daos(SConsPackage):
def build_args(self, spec, prefix):
args = ["PREFIX={0}".format(prefix), "USE_INSTALLED=all"]
- if "+debug" in spec:
+ if spec.satisfies("+debug"):
args.append("--debug=explain,findlibs,includes")
# Construct ALT_PREFIX and make sure that '/usr' is last.
diff --git a/var/spack/repos/builtin/packages/darshan-runtime/package.py b/var/spack/repos/builtin/packages/darshan-runtime/package.py
index 9cfa189ab9..7c811e09aa 100644
--- a/var/spack/repos/builtin/packages/darshan-runtime/package.py
+++ b/var/spack/repos/builtin/packages/darshan-runtime/package.py
@@ -101,27 +101,27 @@ class DarshanRuntime(AutotoolsPackage):
extra_args = []
job_id = "NONE"
- if "+slurm" in spec:
+ if spec.satisfies("+slurm"):
job_id = "SLURM_JOBID"
- if "+cobalt" in spec:
+ if spec.satisfies("+cobalt"):
job_id = "COBALT_JOBID"
- if "+pbs" in spec:
+ if spec.satisfies("+pbs"):
job_id = "PBS_JOBID"
- if "+sge" in spec:
+ if spec.satisfies("+sge"):
job_id = "JOB_ID"
- if "+hdf5" in spec:
+ if spec.satisfies("+hdf5"):
if self.version < Version("3.3.2"):
extra_args.append("--enable-hdf5-mod=%s" % spec["hdf5"].prefix)
else:
extra_args.append("--enable-hdf5-mod")
- if "+parallel-netcdf" in spec:
+ if spec.satisfies("+parallel-netcdf"):
extra_args.append("--enable-pnetcdf-mod")
- if "+apmpi" in spec:
+ if spec.satisfies("+apmpi"):
extra_args.append("--enable-apmpi-mod")
- if "+apmpi_sync" in spec:
+ if spec.satisfies("+apmpi_sync"):
extra_args.extend(["--enable-apmpi-mod", "--enable-apmpi-coll-sync"])
- if "+apxc" in spec:
+ if spec.satisfies("+apxc"):
extra_args.append("--enable-apxc-mod")
extra_args.append("--with-mem-align=8")
@@ -129,7 +129,7 @@ class DarshanRuntime(AutotoolsPackage):
extra_args.append("--with-jobid-env=%s" % job_id)
extra_args.append("--with-zlib=%s" % spec["zlib-api"].prefix)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
extra_args.append("CC=%s" % self.spec["mpi"].mpicc)
else:
extra_args.append("CC=%s" % self.compiler.cc)
diff --git a/var/spack/repos/builtin/packages/darshan-util/package.py b/var/spack/repos/builtin/packages/darshan-util/package.py
index 3c6e935360..ca4acb8fb9 100644
--- a/var/spack/repos/builtin/packages/darshan-util/package.py
+++ b/var/spack/repos/builtin/packages/darshan-util/package.py
@@ -84,12 +84,12 @@ class DarshanUtil(AutotoolsPackage):
extra_args.append("CC=%s" % self.compiler.cc)
extra_args.append("--with-zlib=%s" % spec["zlib-api"].prefix)
- if "+apmpi" in spec:
+ if spec.satisfies("+apmpi"):
if self.version < Version("3.3.2"):
extra_args.append("--enable-autoperf-apmpi")
else:
extra_args.append("--enable-apmpi-mod")
- if "+apxc" in spec:
+ if spec.satisfies("+apxc"):
if self.version < Version("3.3.2"):
extra_args.append("--enable-autoperf-apxc")
else:
diff --git a/var/spack/repos/builtin/packages/dataspaces/package.py b/var/spack/repos/builtin/packages/dataspaces/package.py
index a62d8eec05..ed064f7014 100644
--- a/var/spack/repos/builtin/packages/dataspaces/package.py
+++ b/var/spack/repos/builtin/packages/dataspaces/package.py
@@ -52,7 +52,7 @@ class Dataspaces(AutotoolsPackage):
env.set("CFLAGS", self.compiler.cc_pic_flag)
- if "%gcc@10:" in self.spec:
+ if self.spec.satisfies("%gcc@10:"):
env.set("FCFLAGS", "-fallow-argument-mismatch")
def configure_args(self):
diff --git a/var/spack/repos/builtin/packages/datatransferkit/package.py b/var/spack/repos/builtin/packages/datatransferkit/package.py
index cd68df4ede..8ee50449a3 100644
--- a/var/spack/repos/builtin/packages/datatransferkit/package.py
+++ b/var/spack/repos/builtin/packages/datatransferkit/package.py
@@ -67,7 +67,7 @@ class Datatransferkit(CMakePackage):
"-DMPI_BASE_DIR=" + spec["mpi"].prefix,
]
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
options.append("-DDataTransferKit_ENABLE_OpenMP=ON")
return options
diff --git a/var/spack/repos/builtin/packages/dbcsr/package.py b/var/spack/repos/builtin/packages/dbcsr/package.py
index 68c52540c5..f4917e9492 100644
--- a/var/spack/repos/builtin/packages/dbcsr/package.py
+++ b/var/spack/repos/builtin/packages/dbcsr/package.py
@@ -151,7 +151,7 @@ class Dbcsr(CMakePackage, CudaPackage, ROCmPackage):
]
# Switch necessary as a result of a bug.
- if "@2.1:2.2" in spec:
+ if spec.satisfies("@2.1:2.2"):
args += ["-DBUILD_TESTING=ON"]
if self.spec.satisfies("+cuda"):
diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py
index 6ea7f851d6..b4664d23e2 100644
--- a/var/spack/repos/builtin/packages/dealii/package.py
+++ b/var/spack/repos/builtin/packages/dealii/package.py
@@ -504,7 +504,7 @@ class Dealii(CMakePackage, CudaPackage):
# CUDA
options.append(self.define_from_variant("DEAL_II_WITH_CUDA", "cuda"))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
if not spec.satisfies("^cuda@9:"):
options.append("-DDEAL_II_WITH_CXX14=OFF")
cuda_arch = spec.variants["cuda_arch"].value
@@ -519,7 +519,7 @@ class Dealii(CMakePackage, CudaPackage):
# MPI
options.append(self.define_from_variant("DEAL_II_WITH_MPI", "mpi"))
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
options.extend(
[
self.define("MPI_C_COMPILER", spec["mpi"].mpicc),
@@ -529,9 +529,9 @@ class Dealii(CMakePackage, CudaPackage):
)
# FIXME: Fix issues with undefined references in MPI. e.g,
# libmpi.so: undefined reference to `opal_memchecker_base_isaddressable'
- if "^openmpi" in spec:
+ if spec.satisfies("^openmpi"):
options.extend([self.define("MPI_CXX_LINK_FLAGS", "-lopen-pal")])
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
options.extend(
[
self.define(
@@ -541,7 +541,7 @@ class Dealii(CMakePackage, CudaPackage):
]
)
# Make sure we use the same compiler that Trilinos uses
- if "+trilinos" in spec:
+ if spec.satisfies("+trilinos"):
options.extend([self.define("CMAKE_CXX_COMPILER", spec["trilinos"].kokkos_cxx)])
# Python bindings
@@ -557,7 +557,7 @@ class Dealii(CMakePackage, CudaPackage):
options.append(self.define_from_variant("DEAL_II_WITH_TBB", "threads"))
else:
options.append(self.define_from_variant("DEAL_II_WITH_THREADS", "threads"))
- if "+threads" in spec:
+ if spec.satisfies("+threads"):
if spec.satisfies("^intel-parallel-studio+tbb"):
# deal.II/cmake will have hard time picking up TBB from Intel.
tbb_ver = ".".join(("%s" % spec["tbb"].version).split(".")[1:])
@@ -605,12 +605,12 @@ class Dealii(CMakePackage, CudaPackage):
# Optional dependencies that do not fit the above pattern:
# ADOL-C
options.append(self.define_from_variant("DEAL_II_WITH_ADOLC", "adol-c"))
- if "+adol-c" in spec:
+ if spec.satisfies("+adol-c"):
options.append(self.define("ADOLC_DIR", spec["adol-c"].prefix))
# ARPACK
options.append(self.define_from_variant("DEAL_II_WITH_ARPACK", "arpack"))
- if "+arpack" in spec and "+mpi" in spec:
+ if spec.satisfies("+arpack") and spec.satisfies("+mpi"):
options.extend(
[
self.define("ARPACK_DIR", spec["arpack-ng"].prefix),
@@ -620,7 +620,7 @@ class Dealii(CMakePackage, CudaPackage):
# NetCDF
# since Netcdf is spread among two, need to do it by hand:
- if "+netcdf" in spec and "+mpi" in spec:
+ if spec.satisfies("+netcdf") and spec.satisfies("+mpi"):
netcdf_libs = spec["netcdf-cxx"].libs + spec["netcdf-c"].libs
options.extend(
[
@@ -639,7 +639,7 @@ class Dealii(CMakePackage, CudaPackage):
# ScaLAPACK
options.append(self.define_from_variant("DEAL_II_WITH_SCALAPACK", "scalapack"))
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
scalapack_libs = spec["scalapack"].libs
options.extend(
[
@@ -654,7 +654,7 @@ class Dealii(CMakePackage, CudaPackage):
# Open Cascade
options.append(self.define_from_variant("DEAL_II_WITH_OPENCASCADE", "oce"))
- if "+oce" in spec:
+ if spec.satisfies("+oce"):
options.append(self.define("OPENCASCADE_DIR", spec["oce"].prefix))
# As a final step, collect CXX flags that may have been
@@ -670,7 +670,7 @@ class Dealii(CMakePackage, CudaPackage):
options.append(self.define("DEAL_II_CXX_FLAGS", os.environ["SPACK_TARGET_ARGS"]))
# platform introspection - needs to be disabled in some environments
- if "+platform-introspection" in spec:
+ if spec.satisfies("+platform-introspection"):
options.append(self.define("DEAL_II_ALLOW_PLATFORM_INTROSPECTION", True))
else:
options.append(self.define("DEAL_II_ALLOW_PLATFORM_INTROSPECTION", False))
@@ -682,5 +682,5 @@ class Dealii(CMakePackage, CudaPackage):
def setup_build_environment(self, env):
spec = self.spec
- if "+cuda" in spec and "+mpi" in spec:
+ if spec.satisfies("+cuda") and spec.satisfies("+mpi"):
env.set("CUDAHOSTCXX", spec["mpi"].mpicxx)
diff --git a/var/spack/repos/builtin/packages/delly2/package.py b/var/spack/repos/builtin/packages/delly2/package.py
index 58af591076..11112be094 100644
--- a/var/spack/repos/builtin/packages/delly2/package.py
+++ b/var/spack/repos/builtin/packages/delly2/package.py
@@ -43,7 +43,7 @@ class Delly2(MakefilePackage):
depends_on("bcftools", type="run")
def edit(self, spec, prefix):
- if "+openmp" in self.spec:
+ if self.spec.satisfies("+openmp"):
env["PARALLEL"] = "1"
# Only want to build delly source, not submodules. Build fails
# using provided submodules, succeeds with existing spack recipes.
diff --git a/var/spack/repos/builtin/packages/dftbplus/package.py b/var/spack/repos/builtin/packages/dftbplus/package.py
index fbd6a9fd46..f8041291c2 100644
--- a/var/spack/repos/builtin/packages/dftbplus/package.py
+++ b/var/spack/repos/builtin/packages/dftbplus/package.py
@@ -182,12 +182,12 @@ class Dftbplus(CMakePackage, MakefilePackage):
mconfig.filter("INSTALLDIR := .*", "INSTALLDIR := {0}".format(prefix))
- if "+gpu" in self.spec:
+ if self.spec.satisfies("+gpu"):
march.filter("MAGMADIR = .*", "MAGMADIR = {0}".format(spec["magma"].prefix))
mconfig.filter("WITH_GPU := .*", "WITH_GPU := 1")
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
march.filter(
"SCALAPACKDIR = .*", "SCALAPACKDIR = {0}".format(spec["scalapack"].prefix)
)
@@ -200,7 +200,7 @@ class Dftbplus(CMakePackage, MakefilePackage):
mconfig.filter("WITH_MPI := .*", "WITH_MPI := 1")
- if "+elsi" in self.spec:
+ if self.spec.satisfies("+elsi"):
mconfig.filter("WITH_ELSI := .*", "WITH_ELSI := 1")
has_pexsi = "+enable_pexsi" in spec["elsi"]
@@ -221,20 +221,20 @@ class Dftbplus(CMakePackage, MakefilePackage):
"LIB_LAPACK += -l.*", "LIB_LAPACK += {0}".format(spec["blas"].libs.ld_flags)
)
- if "+sockets" in self.spec:
+ if self.spec.satisfies("+sockets"):
mconfig.filter("WITH_SOCKETS := .*", "WITH_SOCKETS := 1")
- if "+transport" in self.spec:
+ if self.spec.satisfies("+transport"):
mconfig.filter("WITH_TRANSPORT := .*", "WITH_TRANSPORT := 1")
- if "+arpack" in self.spec:
+ if self.spec.satisfies("+arpack"):
march.filter(
"ARPACK_LIBS = .*", "ARPACK_LIBS = {0}".format(spec["arpack-ng"].libs.ld_flags)
)
mconfig.filter("WITH_ARPACK := .*", "WITH_ARPACK := 1")
- if "+dftd3" in self.spec:
+ if self.spec.satisfies("+dftd3"):
march.filter("COMPILE_DFTD3 = .*", "COMPILE_DFTD3 = 0")
march.filter(
"DFTD3_INCS = .*", "DFTD3_INCS = -I{0}".format(spec["dftd3-lib"].prefix.include)
@@ -272,7 +272,7 @@ class Dftbplus(CMakePackage, MakefilePackage):
# (e.g. -DSCALAPACK_LIBRARY)
# and plural form is ignored.
# We set both inorder to be compatible with all versions.
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
# we use scalapack for linear algebra
args.extend(
[
@@ -298,7 +298,7 @@ class Dftbplus(CMakePackage, MakefilePackage):
self.define("BLAS_LIBRARY", blas_libs),
]
)
- if "+python" in self.spec:
+ if self.spec.satisfies("+python"):
args.append(self.define("BUILD_SHARED_LIBS", True))
if self.run_tests:
args.append("-DWITH_UNIT_TESTS=ON")
diff --git a/var/spack/repos/builtin/packages/digitrounding/package.py b/var/spack/repos/builtin/packages/digitrounding/package.py
index c61687a2cb..a9c7ae6cfe 100644
--- a/var/spack/repos/builtin/packages/digitrounding/package.py
+++ b/var/spack/repos/builtin/packages/digitrounding/package.py
@@ -27,7 +27,7 @@ class Digitrounding(CMakePackage):
def cmake_args(self):
args = []
- if "+shared" in self.spec:
+ if self.spec.satisfies("+shared"):
args.append("-DBUILD_SHARED_LIBS=ON")
else:
args.append("-DBUILD_SHARED_LIBS=OFF")
diff --git a/var/spack/repos/builtin/packages/dihydrogen/package.py b/var/spack/repos/builtin/packages/dihydrogen/package.py
index 1b8834fafe..3ab48b7c39 100644
--- a/var/spack/repos/builtin/packages/dihydrogen/package.py
+++ b/var/spack/repos/builtin/packages/dihydrogen/package.py
@@ -12,7 +12,7 @@ from spack.package import *
def get_blas_entries(inspec):
entries = []
spec = inspec["hydrogen"]
- if "blas=openblas" in spec:
+ if spec.satisfies("blas=openblas"):
entries.append(cmake_cache_option("DiHydrogen_USE_OpenBLAS", True))
elif "blas=mkl" in spec or spec.satisfies("^intel-mkl"):
entries.append(cmake_cache_option("DiHydrogen_USE_MKL", True))
@@ -33,7 +33,7 @@ def get_blas_entries(inspec):
% ";".join("-l{0}".format(lib) for lib in self.spec["essl"].libs.names),
)
)
- elif "blas=accelerate" in spec:
+ elif spec.satisfies("blas=accelerate"):
entries.append(cmake_cache_option("DiHydrogen_USE_ACCELERATE", True))
elif spec.satisfies("^netlib-lapack"):
entries.append(cmake_cache_string("BLA_VENDOR", "Generic"))
@@ -332,18 +332,18 @@ class Dihydrogen(CachedCMakePackage, CudaPackage, ROCmPackage):
# all this, but this shouldn't hurt to have.
entries.append(cmake_cache_path("spdlog_ROOT", spec["spdlog"].prefix))
- if "+developer" in spec:
+ if spec.satisfies("+developer"):
entries.append(cmake_cache_path("Catch2_ROOT", spec["catch2"].prefix))
- if "+coverage" in spec:
+ if spec.satisfies("+coverage"):
entries.append(cmake_cache_path("lcov_ROOT", spec["lcov"].prefix))
entries.append(cmake_cache_path("genhtml_ROOT", spec["lcov"].prefix))
- if "+ci" in spec:
+ if spec.satisfies("+ci"):
entries.append(cmake_cache_path("gcovr_ROOT", spec["py-gcovr"].prefix))
- if "+distconv" in spec:
+ if spec.satisfies("+distconv"):
entries.append(cmake_cache_path("Aluminum_ROOT", spec["aluminum"].prefix))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
entries.append(cmake_cache_path("cuDNN_ROOT", spec["cudnn"].prefix))
# Currently this is a hack for all Hydrogen versions. WIP to
diff --git a/var/spack/repos/builtin/packages/discotec/package.py b/var/spack/repos/builtin/packages/discotec/package.py
index cc41090c45..77007f7dd9 100644
--- a/var/spack/repos/builtin/packages/discotec/package.py
+++ b/var/spack/repos/builtin/packages/discotec/package.py
@@ -54,7 +54,7 @@ class Discotec(CMakePackage):
self.define_from_variant("DISCOTEC_USE_VTK", "vtk"),
self.define_from_variant("DISCOTEC_WITH_SELALIB", "selalib"),
]
- if "+selalib" in self.spec:
+ if self.spec.satisfies("+selalib"):
args.append(self.define("SELALIB_DIR", self.spec["selalib"].prefix.cmake))
return args
diff --git a/var/spack/repos/builtin/packages/dla-future/package.py b/var/spack/repos/builtin/packages/dla-future/package.py
index 935f726c69..d889351324 100644
--- a/var/spack/repos/builtin/packages/dla-future/package.py
+++ b/var/spack/repos/builtin/packages/dla-future/package.py
@@ -198,7 +198,7 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
self.define("MKL_LAPACK_TARGET", f"mkl::mkl_intel_32bit_{mkl_threads}_dyn"),
]
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
try:
mpi_provider = spec["mpi"].name
if mpi_provider in ["mpich", "cray-mpich", "mvapich", "mvapich2"]:
@@ -228,7 +228,7 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
" ".join([spec[dep].libs.ld_flags for dep in ["blas", "lapack"]]),
)
)
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
args.append(self.define("SCALAPACK_LIBRARY", spec["scalapack"].libs.ld_flags))
args.append(self.define_from_variant("DLAF_WITH_SCALAPACK", "scalapack"))
@@ -243,12 +243,12 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
# CUDA/HIP
args.append(self.define_from_variant("DLAF_WITH_CUDA", "cuda"))
args.append(self.define_from_variant("DLAF_WITH_HIP", "rocm"))
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
archs = spec.variants["amdgpu_target"].value
if "none" not in archs:
arch_str = ";".join(archs)
args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
archs = spec.variants["cuda_arch"].value
if "none" not in archs:
arch_str = ";".join(archs)
diff --git a/var/spack/repos/builtin/packages/dock/package.py b/var/spack/repos/builtin/packages/dock/package.py
index c97b3efe5e..86f7d5153a 100644
--- a/var/spack/repos/builtin/packages/dock/package.py
+++ b/var/spack/repos/builtin/packages/dock/package.py
@@ -29,7 +29,7 @@ class Dock(Package):
depends_on("mpi", when="+mpi")
def setup_build_environment(self, env):
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
env.set("MPICH_HOME", self.spec["mpi"].prefix)
def install(self, spec, prefix):
@@ -48,7 +48,7 @@ class Dock(Package):
sh_args = ["./configure", compiler_targets[self.compiler.name]]
config_source = compiler_targets[self.compiler.name]
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
sh_args.append("parallel")
config_source = config_source + ".parallel"
diff --git a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
index 6f74fe3d5d..ea64a93377 100644
--- a/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
+++ b/var/spack/repos/builtin/packages/dotnet-core-sdk/package.py
@@ -87,7 +87,7 @@ class DotnetCoreSdk(Package):
variant("telemetry", default=False, description="allow collection of telemetry data")
def setup_run_environment(self, env):
- if "~telemetry" in self.spec:
+ if self.spec.satisfies("~telemetry"):
env.set("DOTNET_CLI_TELEMETRY_OPTOUT", "1")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/draco/package.py b/var/spack/repos/builtin/packages/draco/package.py
index c645c9391f..9721303f95 100644
--- a/var/spack/repos/builtin/packages/draco/package.py
+++ b/var/spack/repos/builtin/packages/draco/package.py
@@ -109,7 +109,7 @@ class Draco(CMakePackage):
"-DUSE_QT={0}".format("ON" if "+qt" in self.spec else "OFF"),
]
)
- if "+fast_fma" in self.spec:
+ if self.spec.satisfies("+fast_fma"):
options.extend(
[
"-DDRACO_ROUNDOFF_MODE={0}".format(
diff --git a/var/spack/repos/builtin/packages/dray/package.py b/var/spack/repos/builtin/packages/dray/package.py
index 0815c310c8..1751e93105 100644
--- a/var/spack/repos/builtin/packages/dray/package.py
+++ b/var/spack/repos/builtin/packages/dray/package.py
@@ -162,7 +162,7 @@ class Dray(Package, CudaPackage):
# Find and record what CMake is used
##############################################
- if "+cmake" in spec:
+ if spec.satisfies("+cmake"):
cmake_exe = spec["cmake"].command.path
else:
cmake_exe = which("cmake")
@@ -199,7 +199,7 @@ class Dray(Package, CudaPackage):
cfg.write("# cpp compiler used by spack\n")
cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
mpicc_path = spec["mpi"].mpicc
mpicxx_path = spec["mpi"].mpicxx
# if we are using compiler wrappers on cray systems
@@ -212,7 +212,7 @@ class Dray(Package, CudaPackage):
cfg.write(cmake_cache_entry("ENABLE_MPI", "ON"))
cfg.write(cmake_cache_entry("MPI_C_COMPILER", mpicc_path))
cfg.write(cmake_cache_entry("MPI_CXX_COMPILER", mpicxx_path))
- if "+blt_find_mpi" in spec:
+ if spec.satisfies("+blt_find_mpi"):
cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "ON"))
else:
cfg.write(cmake_cache_entry("ENABLE_FIND_MPI", "OFF"))
@@ -250,7 +250,7 @@ class Dray(Package, CudaPackage):
cfg.write("# CUDA Support\n")
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
cfg.write(cmake_cache_entry("ENABLE_CUDA", "ON"))
if "cuda_arch" in spec.variants:
cuda_value = spec.variants["cuda_arch"].value
@@ -259,13 +259,13 @@ class Dray(Package, CudaPackage):
else:
cfg.write(cmake_cache_entry("ENABLE_CUDA", "OFF"))
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
cfg.write(cmake_cache_entry("ENABLE_OPENMP", "ON"))
else:
cfg.write(cmake_cache_entry("ENABLE_OPENMP", "OFF"))
# shared vs static libs
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "ON"))
else:
cfg.write(cmake_cache_entry("BUILD_SHARED_LIBS", "OFF"))
@@ -273,7 +273,7 @@ class Dray(Package, CudaPackage):
#######################
# Unit Tests
#######################
- if "+test" in spec:
+ if spec.satisfies("+test"):
cfg.write(cmake_cache_entry("DRAY_ENABLE_TESTS", "ON"))
# we need this to control BLT tests
cfg.write(cmake_cache_entry("ENABLE_TESTS", "ON"))
@@ -285,7 +285,7 @@ class Dray(Package, CudaPackage):
#######################
# Utilities
#######################
- if "+utils" in spec:
+ if spec.satisfies("+utils"):
cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "ON"))
else:
cfg.write(cmake_cache_entry("DRAY_ENABLE_UTILS", "OFF"))
@@ -293,7 +293,7 @@ class Dray(Package, CudaPackage):
#######################
# Logging
#######################
- if "+logging" in spec:
+ if spec.satisfies("+logging"):
cfg.write(cmake_cache_entry("ENABLE_LOGGING", "ON"))
else:
cfg.write(cmake_cache_entry("ENABLE_LOGGING", "OFF"))
@@ -301,7 +301,7 @@ class Dray(Package, CudaPackage):
#######################
# Status
#######################
- if "+stats" in spec:
+ if spec.satisfies("+stats"):
cfg.write(cmake_cache_entry("ENABLE_STATS", "ON"))
else:
cfg.write(cmake_cache_entry("ENABLE_STATS", "OFF"))
diff --git a/var/spack/repos/builtin/packages/duckdb/package.py b/var/spack/repos/builtin/packages/duckdb/package.py
index 0f45b68428..44249692dd 100644
--- a/var/spack/repos/builtin/packages/duckdb/package.py
+++ b/var/spack/repos/builtin/packages/duckdb/package.py
@@ -96,7 +96,7 @@ class Duckdb(MakefilePackage):
)
def setup_build_environment(self, env):
- if "+ninjabuild" in self.spec:
+ if self.spec.satisfies("+ninjabuild"):
env.set("GEN", "ninja")
variant_flags = [
"autocomplete",
diff --git a/var/spack/repos/builtin/packages/dyninst/package.py b/var/spack/repos/builtin/packages/dyninst/package.py
index 06b10b1911..f71ab53fb7 100644
--- a/var/spack/repos/builtin/packages/dyninst/package.py
+++ b/var/spack/repos/builtin/packages/dyninst/package.py
@@ -139,12 +139,12 @@ class Dyninst(CMakePackage):
self.define("LibIberty_LIBRARIES", spec["libiberty"].libs),
]
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("-DUSE_OpenMP=ON")
else:
args.append("-DUSE_OpenMP=OFF")
- if "+static" in spec:
+ if spec.satisfies("+static"):
args.append("-DENABLE_STATIC_LIBS=YES")
else:
args.append("-DENABLE_STATIC_LIBS=NO")
@@ -194,14 +194,14 @@ class Dyninst(CMakePackage):
# Openmp applies to version 10.x or later.
if spec.satisfies("@10.0.0:"):
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("-DUSE_OpenMP=ON")
else:
args.append("-DUSE_OpenMP=OFF")
# Static libs started with version 9.1.0.
if spec.satisfies("@9.1.0:"):
- if "+static" in spec:
+ if spec.satisfies("+static"):
args.append("-DENABLE_STATIC_LIBS=1")
else:
args.append("-DENABLE_STATIC_LIBS=NO")
diff --git a/var/spack/repos/builtin/packages/easi/package.py b/var/spack/repos/builtin/packages/easi/package.py
index c32354d7ea..6eeb239244 100644
--- a/var/spack/repos/builtin/packages/easi/package.py
+++ b/var/spack/repos/builtin/packages/easi/package.py
@@ -63,22 +63,22 @@ class Easi(CMakePackage):
args.append(self.define_from_variant("PYTHON_BINDINGS", "python"))
self.define("PYBIND11_USE_FETCHCONTENT", False)
spec = self.spec
- if "jit=impalajit" in spec or "jit=impalajit-llvm" in spec:
+ if spec.satisfies("jit=impalajit") or spec.satisfies("jit=impalajit-llvm"):
args.append(self.define("IMPALAJIT", True))
backend_type = "llvm" if "jit=impalajit-llvm" in spec else "original"
args.append(self.define("IMPALAJIT_BACKEND", backend_type))
else:
args.append(self.define("IMPALAJIT", False))
- if "jit=lua" in spec:
+ if spec.satisfies("jit=lua"):
args.append(self.define("LUA", True))
- if "+python" in spec:
+ if spec.satisfies("+python"):
args += [self.define("easi_INSTALL_PYTHONDIR", python_platlib)]
return args
def setup_run_environment(self, env):
- if "+python" in self.spec:
+ if self.spec.satisfies("+python"):
full_path = os.path.join(python_platlib, "easilib/cmake/easi/python_wrapper")
env.prepend_path("PYTHONPATH", full_path)
diff --git a/var/spack/repos/builtin/packages/ebms/package.py b/var/spack/repos/builtin/packages/ebms/package.py
index b253837d78..a7ed3feb71 100644
--- a/var/spack/repos/builtin/packages/ebms/package.py
+++ b/var/spack/repos/builtin/packages/ebms/package.py
@@ -36,7 +36,7 @@ class Ebms(MakefilePackage):
cflags = "-g -O3 -std=gnu99"
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
targets.append("CC={0}".format(self.spec["mpi"].mpicc))
targets.append("CFLAGS={0}".format(cflags))
diff --git a/var/spack/repos/builtin/packages/eccodes/package.py b/var/spack/repos/builtin/packages/eccodes/package.py
index 7d25600ed4..d05aeaa487 100644
--- a/var/spack/repos/builtin/packages/eccodes/package.py
+++ b/var/spack/repos/builtin/packages/eccodes/package.py
@@ -337,7 +337,7 @@ class Eccodes(CMakePackage):
self.define("ENABLE_EXTRA_TESTS", False),
]
- if "+netcdf" in self.spec:
+ if self.spec.satisfies("+netcdf"):
# Prevent possible overriding by environment variables NETCDF_ROOT, NETCDF_DIR, and
# NETCDF_PATH:
args.append(self.define("NETCDF_PATH", self.spec["netcdf-c"].prefix))
@@ -350,10 +350,10 @@ class Eccodes(CMakePackage):
if jp2k == "openjpeg":
args.append(self.define("OPENJPEG_PATH", self.spec["openjpeg"].prefix))
- if "+png" in self.spec:
+ if self.spec.satisfies("+png"):
args.append(self.define("ZLIB_ROOT", self.spec["zlib-api"].prefix))
- if "+aec" in self.spec:
+ if self.spec.satisfies("+aec"):
# Prevent overriding by environment variables AEC_DIR and AEC_PATH:
args.append(self.define("AEC_DIR", self.spec["libaec"].prefix))
diff --git a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
index 29f9198c8f..9a4d7b874b 100644
--- a/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
+++ b/var/spack/repos/builtin/packages/ecmwf-atlas/package.py
@@ -86,7 +86,7 @@ class EcmwfAtlas(CMakePackage):
if self.spec.satisfies("@0.35:"):
args.append(self.define_from_variant("ENABLE_ECTRANS", "trans"))
args.append(self.define_from_variant("ENABLE_TESSELATION", "tesselation"))
- if "~shared" in self.spec:
+ if self.spec.satisfies("~shared"):
args.append("-DBUILD_SHARED_LIBS=OFF")
return args
diff --git a/var/spack/repos/builtin/packages/eem/package.py b/var/spack/repos/builtin/packages/eem/package.py
index 9aecdb89f8..777d1ce714 100644
--- a/var/spack/repos/builtin/packages/eem/package.py
+++ b/var/spack/repos/builtin/packages/eem/package.py
@@ -31,7 +31,7 @@ class Eem(MakefilePackage):
settings.filter("$(HOME)/local", prefix, string=True)
settings.filter("mpicxx", self.spec["mpi"].mpicxx, string=True)
- if "+K" in self.spec:
+ if self.spec.satisfies("+K"):
settings.filter("CXXFLAGS= -Wall -Wno-sign-compare -g", "CXXFLAGS=", string=True)
settings.filter(
"CXXFLAGS+= -std=c++11 -DHAVE_UNORDERED_MAP",
diff --git a/var/spack/repos/builtin/packages/elbencho/package.py b/var/spack/repos/builtin/packages/elbencho/package.py
index 3a65df8b17..bfb632efb6 100644
--- a/var/spack/repos/builtin/packages/elbencho/package.py
+++ b/var/spack/repos/builtin/packages/elbencho/package.py
@@ -68,11 +68,11 @@ class Elbencho(MakefilePackage):
def edit(self, spec, prefix):
os.mkdir(prefix.bin)
os.environ["INST_PATH"] = prefix.bin
- if "+s3" in spec:
+ if spec.satisfies("+s3"):
os.environ["S3_SUPPORT"] = "1"
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
os.environ["CUDA_SUPPORT"] = "1"
- if "+cufile" in spec:
+ if spec.satisfies("+cufile"):
os.environ["CUFILE_SUPPORT"] = "1"
makefile = FileFilter("Makefile")
makefile.filter(r"\s+/etc/bash_completion.d/", f" {prefix}/etc/bash_completion.d/")
diff --git a/var/spack/repos/builtin/packages/elemental/package.py b/var/spack/repos/builtin/packages/elemental/package.py
index f3d8589d1a..a286b4b515 100644
--- a/var/spack/repos/builtin/packages/elemental/package.py
+++ b/var/spack/repos/builtin/packages/elemental/package.py
@@ -102,7 +102,7 @@ class Elemental(CMakePackage):
def cmake_args(self):
spec = self.spec
- if "@:0.87.7" in spec and "%intel@:17.0.2" in spec:
+ if spec.satisfies("@:0.87.7") and spec.satisfies("%intel@:17.0.2"):
raise UnsupportedCompilerError(
"Elemental {0} has a known bug with compiler: {1} {2}".format(
spec.version, spec.compiler.name, spec.compiler.version
@@ -150,7 +150,7 @@ class Elemental(CMakePackage):
# If using 64bit int BLAS libraries, elemental has to build
# them internally
- if "+int64_blas" in spec:
+ if spec.satisfies("+int64_blas"):
args.extend(
[
"-DEL_BLAS_SUFFIX:STRING={0}".format(
@@ -159,7 +159,7 @@ class Elemental(CMakePackage):
"-DCUSTOM_BLAS_SUFFIX:BOOL=TRUE",
]
),
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
args.extend(
[
"-DEL_LAPACK_SUFFIX:STRING={0}".format(
@@ -171,7 +171,7 @@ class Elemental(CMakePackage):
else:
math_libs = spec["lapack"].libs + spec["blas"].libs
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
math_libs = spec["scalapack"].libs + math_libs
args.extend(["-DMATH_LIBS:STRING={0}".format(math_libs.ld_flags)])
diff --git a/var/spack/repos/builtin/packages/elfutils/package.py b/var/spack/repos/builtin/packages/elfutils/package.py
index 46ec84f4d4..d097728c91 100644
--- a/var/spack/repos/builtin/packages/elfutils/package.py
+++ b/var/spack/repos/builtin/packages/elfutils/package.py
@@ -128,7 +128,7 @@ class Elfutils(AutotoolsPackage, SourcewarePackage):
else:
args.append("--program-prefix=''")
- if "@0.182:" in spec:
+ if spec.satisfies("@0.182:"):
args.append("--with-zstd=%s" % spec["zstd"].prefix)
if spec.satisfies("@0.183:"):
@@ -137,7 +137,7 @@ class Elfutils(AutotoolsPackage, SourcewarePackage):
else:
args.append("--without-libiconv-prefix")
- if "+nls" in spec:
+ if spec.satisfies("+nls"):
# Prior to 0.183, only msgfmt is used from gettext.
if spec.satisfies("@0.183:"):
if "intl" not in spec["gettext"].libs.names:
@@ -147,7 +147,7 @@ class Elfutils(AutotoolsPackage, SourcewarePackage):
else:
args.append("--disable-nls")
- if "+debuginfod" in spec:
+ if spec.satisfies("+debuginfod"):
args.append("--enable-debuginfod")
if spec.satisfies("@0.181:"):
args.append("--enable-libdebuginfod")
diff --git a/var/spack/repos/builtin/packages/elk/package.py b/var/spack/repos/builtin/packages/elk/package.py
index 4323aec779..4f35744222 100644
--- a/var/spack/repos/builtin/packages/elk/package.py
+++ b/var/spack/repos/builtin/packages/elk/package.py
@@ -136,7 +136,7 @@ class Elk(MakefilePackage):
config["F90_OPTS"] = flags
config["F77_OPTS"] = flags
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
config["F90"] = spec["mpi"].mpifc
config["F77"] = spec["mpi"].mpif77
config["SRC_MPI"] = " "
@@ -146,7 +146,7 @@ class Elk(MakefilePackage):
config["SRC_MPI"] = "mpi_stub.f90"
# OpenMP support
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
config["F90_OPTS"] += " " + self.compiler.openmp_flag
config["F77_OPTS"] += " " + self.compiler.openmp_flag
config["SRC_OMP"] = " "
@@ -154,29 +154,29 @@ class Elk(MakefilePackage):
# BLAS/LAPACK support
# Note: openblas must be compiled with OpenMP support
# if the +openmp variant is chosen
- if "linalg=internal" in spec:
+ if spec.satisfies("linalg=internal"):
self.build_targets.append("blas")
self.build_targets.append("lapack")
- if "linalg=generic" in spec:
+ if spec.satisfies("linalg=generic"):
blas = spec["blas"].libs.joined()
lapack = spec["lapack"].libs.joined()
config["LIB_LPK"] = " ".join([lapack, blas])
- if "linalg=openblas" in spec:
+ if spec.satisfies("linalg=openblas"):
config["LIB_LPK"] = spec["openblas"].libs.ld_flags
config["SRC_OBLAS"] = " "
- if "linalg=mkl" in spec:
+ if spec.satisfies("linalg=mkl"):
config["LIB_LPK"] = spec["mkl"].libs.ld_flags
config["SRC_MKL"] = " "
- if "linalg=blis" in spec:
+ if spec.satisfies("linalg=blis"):
config["LIB_LPK"] = " ".join(["lapack.a ", spec["blis"].libs.ld_flags])
config["SRC_BLIS"] = " "
# FFT
- if "fft=internal" in spec:
+ if spec.satisfies("fft=internal"):
self.build_targets.append("fft")
- elif "fft=fftw" in spec:
+ elif spec.satisfies("fft=fftw"):
config["LIB_FFT"] = spec["fftw"].libs.ld_flags
config["SRC_FFT"] = "zfftifc_fftw.f90"
- elif "fft=mkl" in spec:
+ elif spec.satisfies("fft=mkl"):
config["LIB_FFT"] = spec["mkl"].libs.ld_flags
config["SRC_FFT"] = "mkl_dfti.f90 zfftifc_mkl.f90"
cp = which("cp")
@@ -192,7 +192,7 @@ class Elk(MakefilePackage):
self.build_targets.append("elk")
print(self.build_targets)
# Libxc support
- if "+libxc" in spec:
+ if spec.satisfies("+libxc"):
config["LIB_libxc"] = " ".join(
[
join_path(spec["libxc"].prefix.lib, "libxcf90.so"),
diff --git a/var/spack/repos/builtin/packages/elmerfem/package.py b/var/spack/repos/builtin/packages/elmerfem/package.py
index 6ddb0e642b..123cdf5866 100644
--- a/var/spack/repos/builtin/packages/elmerfem/package.py
+++ b/var/spack/repos/builtin/packages/elmerfem/package.py
@@ -57,7 +57,7 @@ class Elmerfem(CMakePackage):
args = ["-DWITH_ElmerIce=ON", "-DWITH_CONTRIB=ON"]
- if "+gui" in spec:
+ if spec.satisfies("+gui"):
args.append("-DWITH_ELMERGUI:BOOL=TRUE")
args.append("-DWITH_QT5:BOOL=TRUE")
args.append("-DWITH_QWT:BOOL=TRUE")
@@ -65,7 +65,7 @@ class Elmerfem(CMakePackage):
else:
args.append("-DWITH_ELMERGUI:BOOL=FALSE")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append("-DWITH_MPI=ON")
else:
args.append("-DWITH_MPI=OFF")
@@ -73,40 +73,40 @@ class Elmerfem(CMakePackage):
if self.spec.satisfies("^intel-mkl"):
args.append("-DWITH_MKL:BOOL=TRUE")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("-DWITH_OpenMP=ON")
else:
args.append("-DWITH_OpenMP=OFF")
- if "+mumps" in spec:
+ if spec.satisfies("+mumps"):
args.append("-DWITH_Mumps=ON")
else:
args.append("-DWITH_Mumps=OFF")
- if "+hypre" in spec:
+ if spec.satisfies("+hypre"):
args.append("-DWITH_Hypre=ON")
else:
args.append("-DWITH_Hypre=OFF")
- if "+trilinos" in spec:
+ if spec.satisfies("+trilinos"):
args.extend(["-DWITH_Trilinos=ON", "-DCMAKE_CXX_STANDARD=11"])
else:
args.append("-DWITH_Trilinos=OFF")
- if "+lua" in spec:
+ if spec.satisfies("+lua"):
args.extend(["-DWITH_LUA=ON", "-DUSE_SYSTEM_LUA=ON"])
- if "%gcc" in spec:
+ if spec.satisfies("%gcc"):
args.append("-DCMAKE_Fortran_FLAGS=-ffree-line-length-none")
else:
args.append("-DWITH_LUA=OFF")
- if "+zoltan" in spec:
+ if spec.satisfies("+zoltan"):
args.extend(["-DWITH_Zoltan=ON", "-DUSE_SYSTEM_ZOLTAN=ON"])
else:
args.append("-DWITH_Zoltan=OFF")
- if "+scatt2d" in spec:
+ if spec.satisfies("+scatt2d"):
args.extend(
[
"-DWITH_ScatteredDataInterpolator=ON",
@@ -132,5 +132,5 @@ class Elmerfem(CMakePackage):
def setup_run_environment(self, env):
env.set("ELMER_HOME", self.prefix)
env.set("ELMER_Fortran_COMPILER", self.compiler.fc)
- if "+gui" in self.spec:
+ if self.spec.satisfies("+gui"):
env.set("ELMERGUI_HOME", self.prefix.share.ElmerGUI)
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index 4088e3f298..b1f07a460d 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -158,7 +158,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
if spec.target.family != "x86_64":
options.append("--disable-sse-assembly")
- if "%aocc" in spec or "%fj" in spec:
+ if spec.satisfies("%aocc") or spec.satisfies("%fj"):
options.append("--disable-shared")
options.append("--enable-static")
@@ -169,17 +169,17 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
if self.compiler.name == "gcc":
options.extend(["CFLAGS=-O3", "FCFLAGS=-O3 -ffree-line-length-none"])
- if "%aocc" in spec:
+ if spec.satisfies("%aocc"):
options.extend(["FCFLAGS=-O3", "CFLAGS=-O3"])
- if "%fj" in spec:
+ if spec.satisfies("%fj"):
options.append("--disable-Fortran2008-features")
options.append("--enable-FUGAKU")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
options.extend(["FCFLAGS=-Kparallel"])
cuda_flag = "nvidia-gpu"
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
prefix = spec["cuda"].prefix
# Can't yet be changed to the new option --enable-nvidia-gpu-kernels
# https://github.com/marekandreas/elpa/issues/55
@@ -199,7 +199,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
else:
options.append(f"--disable-{cuda_flag}" + kernels)
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
# Can't yet be changed to the new option --enable-amd-gpu-kernels
# https://github.com/marekandreas/elpa/issues/55
options.append("--enable-amd-gpu")
@@ -208,7 +208,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
if spec.satisfies("+gpu_streams"):
options.append("--enable-gpu-streams=amd")
- elif "@2021.05.001:" in self.spec:
+ elif self.spec.satisfies("@2021.05.001:"):
options.append("--disable-amd-gpu" + kernels)
options += self.enable_or_disable("openmp")
@@ -219,7 +219,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
options += [f'LDFLAGS={" ".join(ldflags)}', f'LIBS={" ".join(libs)}']
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
options += [
"CC={0}".format(spec["mpi"].mpicc),
"CXX={0}".format(spec["mpi"].mpicxx),
@@ -227,7 +227,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
"SCALAPACK_LDFLAGS={0}".format(spec["scalapack"].libs.joined()),
]
- if "+autotune" in self.spec:
+ if self.spec.satisfies("+autotune"):
options.append("--enable-autotune-redistribute-matrix")
# --enable-autotune-redistribute-matrix requires --enable-scalapack-tests as well
options.append("--enable-scalapack-tests")
diff --git a/var/spack/repos/builtin/packages/emacs/package.py b/var/spack/repos/builtin/packages/emacs/package.py
index 993f08428a..738bfd649b 100644
--- a/var/spack/repos/builtin/packages/emacs/package.py
+++ b/var/spack/repos/builtin/packages/emacs/package.py
@@ -91,7 +91,7 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage):
spec = self.spec
toolkit = spec.variants["toolkit"].value
- if "+X" in spec:
+ if spec.satisfies("+X"):
args = ["--with-x", "--with-x-toolkit={0}".format(toolkit)]
else:
args = ["--without-x"]
diff --git a/var/spack/repos/builtin/packages/environment-modules/package.py b/var/spack/repos/builtin/packages/environment-modules/package.py
index 3bd8426794..173c340162 100644
--- a/var/spack/repos/builtin/packages/environment-modules/package.py
+++ b/var/spack/repos/builtin/packages/environment-modules/package.py
@@ -92,10 +92,10 @@ class EnvironmentModules(Package):
if not spec.satisfies("@4.5.2"):
config_args.extend(["--disable-dependency-tracking", "--disable-silent-rules"])
- if "~X" in spec:
+ if spec.satisfies("~X"):
config_args = ["--without-x"] + config_args
- if "@4.4.0:4.8" in self.spec:
+ if self.spec.satisfies("@4.4.0:4.8"):
config_args.extend(
[
"--with-icase=search",
@@ -104,13 +104,13 @@ class EnvironmentModules(Package):
]
)
- if "@4.3.0:4.8" in self.spec:
+ if self.spec.satisfies("@4.3.0:4.8"):
config_args.extend(["--enable-color"])
- if "@4.2.0:4.8" in self.spec:
+ if self.spec.satisfies("@4.2.0:4.8"):
config_args.extend(["--enable-auto-handling"])
- if "@4.1.0:" in self.spec:
+ if self.spec.satisfies("@4.1.0:"):
config_args.extend(
[
# Variables in quarantine are empty during module command
@@ -120,17 +120,17 @@ class EnvironmentModules(Package):
]
)
- if "@4.0.0:4.8" in self.spec:
+ if self.spec.satisfies("@4.0.0:4.8"):
config_args.extend(["--disable-compat-version"])
- if "@4.0.0:" in self.spec:
+ if self.spec.satisfies("@4.0.0:"):
config_args.extend(["--with-tclsh={0}".format(tcl.prefix.bin.tclsh)])
- if "@3.2.10" in self.spec:
+ if self.spec.satisfies("@3.2.10"):
# See: https://sourceforge.net/p/modules/bugs/62/
config_args.extend(["--disable-debug", "CPPFLAGS=-DUSE_INTERP_ERRORLINE"])
- if "@:3.2" in self.spec:
+ if self.spec.satisfies("@:3.2"):
config_args.extend(
[
"--without-tclx",
diff --git a/var/spack/repos/builtin/packages/eospac/package.py b/var/spack/repos/builtin/packages/eospac/package.py
index bcf8f62a71..50c0657799 100644
--- a/var/spack/repos/builtin/packages/eospac/package.py
+++ b/var/spack/repos/builtin/packages/eospac/package.py
@@ -159,11 +159,11 @@ class Eospac(Package):
# This looks goofy because eospac does not actually respect the
# value of DO_OFFLOAD and instead only attempts to check for its
# existence; a quirk of eospac.
- if "+offload" in spec:
+ if spec.satisfies("+offload"):
compilerArgs.append("DO_OFFLOAD=1")
# Eospac depends on fcommon behavior
# but gcc@10 flipped to default fno-common
- if "%gcc@10:" in spec:
+ if spec.satisfies("%gcc@10:"):
compilerArgs.append("CFLAGS=-fcommon")
if self.run_tests:
make("check", *compilerArgs)
diff --git a/var/spack/repos/builtin/packages/erne/package.py b/var/spack/repos/builtin/packages/erne/package.py
index 8074001213..1f077d6fd6 100644
--- a/var/spack/repos/builtin/packages/erne/package.py
+++ b/var/spack/repos/builtin/packages/erne/package.py
@@ -30,7 +30,7 @@ class Erne(AutotoolsPackage):
depends_on("openmpi", type=("build", "run"), when="+mpi")
def configure_args(self):
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
return ["--enable-openmpi"]
else:
return ["--disable-openmpi"]
diff --git a/var/spack/repos/builtin/packages/esmf/package.py b/var/spack/repos/builtin/packages/esmf/package.py
index bc82047fc1..7c6d5e7dbb 100644
--- a/var/spack/repos/builtin/packages/esmf/package.py
+++ b/var/spack/repos/builtin/packages/esmf/package.py
@@ -288,7 +288,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
msg += '"{0}", is not supported by ESMF.'
raise InstallError(msg.format(self.pkg.compiler.name))
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
env.set("ESMF_CXX", spec["mpi"].mpicxx)
env.set("ESMF_C", spec["mpi"].mpicc)
env.set("ESMF_F90", spec["mpi"].mpifc)
@@ -298,7 +298,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
env.set("ESMF_F90", spack_fc)
# This environment variable controls the build option.
- if "+debug" in spec:
+ if spec.satisfies("+debug"):
# Build a debuggable version of the library.
env.set("ESMF_BOPT", "g")
else:
@@ -332,28 +332,30 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
# ESMF_COMM must be set to indicate which MPI implementation
# is used to build the ESMF library.
- if "+mpi" in spec:
- if "^cray-mpich" in self.spec:
+ if spec.satisfies("+mpi"):
+ if self.spec.satisfies("^[virtuals=mpi] cray-mpich"):
env.set("ESMF_COMM", "mpi")
# https://github.com/jcsda/spack-stack/issues/517
if self.spec.satisfies("@:8.4.1"):
env.set("ESMF_CXXLINKLIBS", "-lmpifort -lmpi")
- elif "^mvapich2" in spec:
+ elif spec.satisfies("^[virtuals=mpi] mvapich2"):
env.set("ESMF_COMM", "mvapich2")
- elif "^mpich" in spec:
+ elif spec.satisfies("^[virtuals=mpi] mpich"):
if self.spec.satisfies("@:8.2.99"):
env.set("ESMF_COMM", "mpich3")
else:
env.set("ESMF_COMM", "mpich")
- elif "^openmpi" in spec or "^hpcx-mpi" in spec:
+ elif spec.satisfies("^[virtuals=mpi] openmpi") or spec.satisfies(
+ "^[virtuals=mpi] hpcx-mpi"
+ ):
env.set("ESMF_COMM", "openmpi")
elif (
- "^intel-parallel-studio+mpi" in spec
- or "^intel-mpi" in spec
- or "^intel-oneapi-mpi" in spec
+ spec.satisfies("^[virtuals=mpi] intel-parallel-studio+mpi")
+ or spec.satisfies("^[virtuals=mpi] intel-mpi")
+ or spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi")
):
env.set("ESMF_COMM", "intelmpi")
- elif "^mpt" in spec:
+ elif spec.satisfies("^[virtuals=mpi] mpt"):
# MPT is the HPE (SGI) variant of mpich
env.set("ESMF_COMM", "mpt")
else:
@@ -369,7 +371,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
# LAPACK #
##########
- if "+external-lapack" in spec:
+ if spec.satisfies("+external-lapack"):
# A system-dependent external LAPACK/BLAS installation is used
# to satisfy the external dependencies of the LAPACK-dependent
# ESMF code.
@@ -388,7 +390,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
# NetCDF #
##########
- if "+netcdf" in spec:
+ if spec.satisfies("+netcdf"):
# ESMF provides the ability to read Grid and Mesh data in
# NetCDF format.
env.set("ESMF_NETCDF", "nc-config")
@@ -403,7 +405,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
# Parallel-NetCDF #
###################
- if "+pnetcdf" in spec:
+ if spec.satisfies("+pnetcdf"):
# ESMF provides the ability to write Mesh weights
# using Parallel-NetCDF.
@@ -414,7 +416,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
##############
# ParallelIO #
##############
- if "+external-parallelio" in spec:
+ if spec.satisfies("+external-parallelio"):
env.set("ESMF_PIO", "external")
env.set("ESMF_PIO_LIBPATH", spec["parallelio"].prefix.lib)
env.set("ESMF_PIO_INCLUDE", spec["parallelio"].prefix.include)
@@ -428,7 +430,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
# XERCES #
##########
- if "+xerces" in spec:
+ if spec.satisfies("+xerces"):
# ESMF provides the ability to read Attribute data in
# XML file format via the XERCES C++ library.
@@ -444,11 +446,11 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
#########################
# Static-only option:
- if "~shared" in spec:
+ if spec.satisfies("~shared"):
env.set("ESMF_SHARED_LIB_BUILD", "OFF")
# https://github.com/JCSDA/spack-stack/issues/956
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
if sys.platform == "darwin":
env.set("ESMF_TRACE_LIB_BUILD", "OFF")
@@ -474,7 +476,7 @@ class MakefileBuilder(spack.build_systems.makefile.MakefileBuilder):
def install(self, pkg, spec, prefix):
make("install")
- if "+python" in spec:
+ if spec.satisfies("+python"):
# build the python library
python_builder = PythonPipBuilder(pkg)
python_builder.install(pkg, spec, prefix)
diff --git a/var/spack/repos/builtin/packages/essl/package.py b/var/spack/repos/builtin/packages/essl/package.py
index bda77a149f..bcfbe4b220 100644
--- a/var/spack/repos/builtin/packages/essl/package.py
+++ b/var/spack/repos/builtin/packages/essl/package.py
@@ -45,18 +45,18 @@ class Essl(BundlePackage):
spec = self.spec
prefix = self.prefix
- if "+ilp64" in spec:
+ if spec.satisfies("+ilp64"):
essl_lib = ["libessl6464"]
else:
essl_lib = ["libessl"]
if spec.satisfies("threads=openmp"):
# ESSL SMP support requires XL or Clang OpenMP library
- if "%xl" in spec or "%xl_r" in spec or "%clang" in spec:
- if "+ilp64" in spec:
+ if spec.satisfies("%xl") or spec.satisfies("%xl_r") or spec.satisfies("%clang"):
+ if spec.satisfies("+ilp64"):
essl_lib = ["libesslsmp6464"]
else:
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
essl_lib = ["libesslsmpcuda"]
else:
essl_lib = ["libesslsmp"]
diff --git a/var/spack/repos/builtin/packages/evtgen/package.py b/var/spack/repos/builtin/packages/evtgen/package.py
index 41a44bad54..cac9dd6a18 100644
--- a/var/spack/repos/builtin/packages/evtgen/package.py
+++ b/var/spack/repos/builtin/packages/evtgen/package.py
@@ -104,11 +104,11 @@ class Evtgen(CMakePackage):
args = []
args.append("--hepmcdir=%s" % self.spec["hepmc"].prefix)
- if "+pythia8" in self.spec:
+ if self.spec.satisfies("+pythia8"):
args.append("--pythiadir=%s" % self.spec["pythia8"].prefix)
- if "+photos" in self.spec:
+ if self.spec.satisfies("+photos"):
args.append("--photosdir=%s" % self.spec["photos"].prefix)
- if "+tauola" in self.spec:
+ if self.spec.satisfies("+tauola"):
args.append("--tauoladir=%s" % self.spec["tauola"].prefix)
return args
diff --git a/var/spack/repos/builtin/packages/exabayes/package.py b/var/spack/repos/builtin/packages/exabayes/package.py
index 3ffb5122fa..36a5b3ccd9 100644
--- a/var/spack/repos/builtin/packages/exabayes/package.py
+++ b/var/spack/repos/builtin/packages/exabayes/package.py
@@ -38,7 +38,7 @@ class Exabayes(AutotoolsPackage):
def configure_args(self):
args = []
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
args.append("--enable-mpi")
else:
args.append("--disable-mpi")
diff --git a/var/spack/repos/builtin/packages/exago/package.py b/var/spack/repos/builtin/packages/exago/package.py
index 4468014306..950909d3b7 100644
--- a/var/spack/repos/builtin/packages/exago/package.py
+++ b/var/spack/repos/builtin/packages/exago/package.py
@@ -199,7 +199,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
args = []
spec = self.spec
- if "~mpi" in self.spec:
+ if self.spec.satisfies("~mpi"):
args.append(self.define("CMAKE_C_COMPILER", os.environ["CC"]))
args.append(self.define("CMAKE_CXX_COMPILER", os.environ["CXX"]))
else:
@@ -207,7 +207,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
args.append(self.define("CMAKE_CXX_COMPILER", spec["mpi"].mpicxx))
args.append(self.define("MPI_C_COMPILER", spec["mpi"].mpicc))
args.append(self.define("MPI_CXX_COMPILER", spec["mpi"].mpicxx))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append(self.define("MPI_CXX_HEADER_DIR", spec["mpi"].prefix.include))
# NOTE: If building with spack develop on a cluster, you may want to
@@ -233,7 +233,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
]
)
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
cuda_arch_list = spec.variants["cuda_arch"].value
if cuda_arch_list[0] != "none":
args.append(self.define("CMAKE_CUDA_ARCHITECTURES", cuda_arch_list))
@@ -246,7 +246,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
# args.append(
# self.define('HIP_CLANG_INCLUDE_PATH',
# '/opt/rocm-X.Y.Z/llvm/lib/clang/14.0.0/include/'))
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
args.append(self.define("CMAKE_CXX_COMPILER", spec["hip"].hipcc))
rocm_arch_list = spec.variants["amdgpu_target"].value
diff --git a/var/spack/repos/builtin/packages/examinimd/package.py b/var/spack/repos/builtin/packages/examinimd/package.py
index d23fff888b..54b0ab843c 100644
--- a/var/spack/repos/builtin/packages/examinimd/package.py
+++ b/var/spack/repos/builtin/packages/examinimd/package.py
@@ -43,14 +43,14 @@ class Examinimd(MakefilePackage):
# Append Kokkos
targets.append("KOKKOS_PATH={0}".format(self.spec["kokkos-legacy"].prefix))
# Set kokkos device
- if "openmp" in self.spec:
+ if self.spec.satisfies("openmp"):
targets.append("KOKKOS_DEVICES=OpenMP")
- elif "pthreads" in self.spec:
+ elif self.spec.satisfies("pthreads"):
targets.append("KOKKOS_DEVICES=Pthread")
else:
targets.append("KOKKOS_DEVICES=Serial")
# Set MPI as needed
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
targets.append("MPI=1")
targets.append("CXX = {0}".format(self.spec["mpi"].mpicxx))
else:
diff --git a/var/spack/repos/builtin/packages/exasp2/package.py b/var/spack/repos/builtin/packages/exasp2/package.py
index 2b13d5a59e..911d7f04a0 100644
--- a/var/spack/repos/builtin/packages/exasp2/package.py
+++ b/var/spack/repos/builtin/packages/exasp2/package.py
@@ -48,7 +48,7 @@ class Exasp2(MakefilePackage):
def build_targets(self):
targets = []
spec = self.spec
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
targets.append("PARALLEL=MPI")
targets.append("MPICC={0}".format(spec["mpi"].mpicc))
targets.append("MPI_LIB=-L" + spec["mpi"].prefix.lib + " -lmpi")
diff --git a/var/spack/repos/builtin/packages/exawind/package.py b/var/spack/repos/builtin/packages/exawind/package.py
index 79791711b7..82a8a09406 100644
--- a/var/spack/repos/builtin/packages/exawind/package.py
+++ b/var/spack/repos/builtin/packages/exawind/package.py
@@ -116,14 +116,14 @@ class Exawind(CMakePackage, CudaPackage, ROCmPackage):
def setup_build_environment(self, env):
env.append_flags("CXXFLAGS", "-DUSE_STK_SIMD_NONE")
- if "+rocm+amr_wind_gpu~nalu_wind_gpu" in self.spec:
+ if self.spec.satisfies("+rocm+amr_wind_gpu~nalu_wind_gpu"):
# Manually turn off device self.defines to solve Kokkos issues in Nalu-Wind headers
env.append_flags("CXXFLAGS", "-U__HIP_DEVICE_COMPILE__ -DDESUL_HIP_RDC")
- if "+cuda" in self.spec:
+ if self.spec.satisfies("+cuda"):
env.set("OMPI_CXX", self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
env.set("MPICH_CXX", self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
env.set("MPICXX_CXX", self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
- if "+rocm" in self.spec:
+ if self.spec.satisfies("+rocm"):
env.set("OMPI_CXX", self.spec["hip"].hipcc)
env.set("MPICH_CXX", self.spec["hip"].hipcc)
env.set("MPICXX_CXX", self.spec["hip"].hipcc)
diff --git a/var/spack/repos/builtin/packages/exciting/package.py b/var/spack/repos/builtin/packages/exciting/package.py
index c47b27536a..8732882361 100644
--- a/var/spack/repos/builtin/packages/exciting/package.py
+++ b/var/spack/repos/builtin/packages/exciting/package.py
@@ -75,18 +75,18 @@ class Exciting(MakefilePackage):
opts["LIB_ARP"] = "libarpack.a"
opts["F90"] = spack_fc
opts["F77"] = spack_f77
- if "+omp" in spec:
+ if spec.satisfies("+omp"):
opts["SMPF90_OPTS"] = self.compiler.openmp_flag + " -DUSEOMP"
opts["SMPF77_OPTS"] = self.compiler.openmp_flag + " -DUSEOMP"
else:
opts["BUILDSMP"] = "false"
- if "%intel" in spec:
+ if spec.satisfies("%intel"):
opts["F90_OPTS"] += " -cpp -ip -unroll -scalar_rep "
opts["CPP_ON_OPTS"] += " -DIFORT -DFFTW"
- if "%gcc" in spec:
+ if spec.satisfies("%gcc"):
opts["F90_OPTS"] += " -march=native -ffree-line-length-0"
- if "%gcc@10:" in spec:
+ if spec.satisfies("%gcc@10:"):
# The INSTALL file says this will fix the GCC@10 issues
opts["F90_OPTS"] += " -fallow-argument-mismatch"
opts["F77_OPTS"] += " -fallow-argument-mismatch"
@@ -95,7 +95,7 @@ class Exciting(MakefilePackage):
" ".join(["FCFLAGS = @FCFLAGS@", "-cpp", self.compiler.openmp_flag]),
"src/libXC/src/Makefile.in",
)
- if "+mkl" in spec:
+ if spec.satisfies("+mkl"):
opts["LIB_LPK"] = "-mkl=parallel"
opts["INC_MKL"] = spec["mkl"].headers.include_flags
opts["LIB_MKL"] = spec["mkl"].libs.ld_flags
@@ -109,17 +109,17 @@ class Exciting(MakefilePackage):
]
)
- if "+omp" in spec:
+ if spec.satisfies("+omp"):
opts["BUILDSMP"] = "true"
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
opts["BUILDMPI"] = "true"
opts["MPIF90"] = spec["mpi"].mpifc
opts["MPIF90_CPP_OPTS"] = "-DMPI -DMPIRHO -DMPISEC"
opts["MPIF90_OPTS"] = " ".join(["$(F90_OPTS)", "$(CPP_ON_OPTS) " "$(MPIF90_CPP_OPTS)"])
opts["MPIF90MT"] = "$(MPIF90)"
- if "+omp" in spec:
+ if spec.satisfies("+omp"):
opts["BUILDMPISMP"] = "true"
opts["SMPF90_OPTS"] = self.compiler.openmp_flag + " -DUSEOMP"
opts["SMPF77_OPTS"] = opts["SMPF90_OPTS"]
@@ -127,7 +127,7 @@ class Exciting(MakefilePackage):
else:
opts["BUILDMPI"] = "false"
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
opts["LIB_SCLPK"] = spec["scalapack"].libs.ld_flags
opts["CPP_SCLPK"] = " -DSCAL "
opts["MPI_LIBS"] = "$(LIB_SCLPK)"
diff --git a/var/spack/repos/builtin/packages/exodusii/package.py b/var/spack/repos/builtin/packages/exodusii/package.py
index 1b25757c3f..00c29b96fe 100644
--- a/var/spack/repos/builtin/packages/exodusii/package.py
+++ b/var/spack/repos/builtin/packages/exodusii/package.py
@@ -183,7 +183,7 @@ class Exodusii(CMakePackage):
define("MPI_BASE_DIR", spec["mpi"].prefix),
]
)
- if "+fortran" in self.spec:
+ if self.spec.satisfies("+fortran"):
options.append(define("CMAKE_Fortran_COMPILER", spec["mpi"].mpifc))
# ##################### Dependencies ##########################
diff --git a/var/spack/repos/builtin/packages/expat/package.py b/var/spack/repos/builtin/packages/expat/package.py
index 38d9b3ab03..893fd1037a 100644
--- a/var/spack/repos/builtin/packages/expat/package.py
+++ b/var/spack/repos/builtin/packages/expat/package.py
@@ -176,7 +176,7 @@ class AutotoolsBuilder(autotools.AutotoolsBuilder):
def configure_args(self):
spec = self.spec
args = ["--without-docbook", "--enable-static"]
- if "+libbsd" in spec and "@2.2.1:" in spec:
+ if spec.satisfies("+libbsd") and spec.satisfies("@2.2.1:"):
args.append("--with-libbsd")
return args
@@ -188,7 +188,7 @@ class CMakeBuilder(cmake.CMakeBuilder):
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
]
- if "+libbsd" in self.spec and "@2.2.1:" in self.spec:
+ if self.spec.satisfies("+libbsd") and self.spec.satisfies("@2.2.1:"):
args.append(self.define_from_variant("EXPAT_WITH_LIBBSD", "libbsd"))
return args
diff --git a/var/spack/repos/builtin/packages/extrae/package.py b/var/spack/repos/builtin/packages/extrae/package.py
index 69d04447c4..299f586214 100644
--- a/var/spack/repos/builtin/packages/extrae/package.py
+++ b/var/spack/repos/builtin/packages/extrae/package.py
@@ -94,7 +94,7 @@ class Extrae(AutotoolsPackage):
def configure_args(self):
spec = self.spec
- if "^intel-oneapi-mpi" in spec:
+ if spec.satisfies("^[virtuals=mpi] intel-oneapi-mpi"):
mpiroot = spec["mpi"].component_prefix
else:
mpiroot = spec["mpi"].prefix
@@ -127,7 +127,7 @@ class Extrae(AutotoolsPackage):
else ["--without-cuda"]
)
- if "+cupti" in self.spec:
+ if self.spec.satisfies("+cupti"):
cupti_h = find_headers("cupti", spec["cuda"].prefix, recursive=True)
cupti_dir = os.path.dirname(os.path.dirname(cupti_h[0]))
diff --git a/var/spack/repos/builtin/packages/eztrace/package.py b/var/spack/repos/builtin/packages/eztrace/package.py
index 82c3678f7d..7648bbb26a 100644
--- a/var/spack/repos/builtin/packages/eztrace/package.py
+++ b/var/spack/repos/builtin/packages/eztrace/package.py
@@ -92,13 +92,13 @@ class CMakeBuilder(cmake.CMakeBuilder):
if spec.satisfies("@2.1: %llvm-openmp-ompt"):
args.append(self.define("EZTRACE_ENABLE_OMPT", True))
- if "+starpu" in spec:
+ if spec.satisfies("+starpu"):
args.append(self.define("EZTRACE_ENABLE_STARPU", True))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append(self.define("EZTRACE_ENABLE_CUDA", True))
- if "+netcdf" in spec:
+ if spec.satisfies("+netcdf"):
args.append(self.define("EZTRACE_ENABLE_NETCDF", True))
- if "+pnetcdf" in spec:
+ if spec.satisfies("+pnetcdf"):
args.append(self.define("EZTRACE_ENABLE_PNETCDF", True))
return args