summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/babelstream/package.py16
-rw-r--r--var/spack/repos/builtin/packages/bart/package.py4
-rw-r--r--var/spack/repos/builtin/packages/barvinok/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bcftools/package.py2
-rw-r--r--var/spack/repos/builtin/packages/beatnik/package.py2
-rw-r--r--var/spack/repos/builtin/packages/berkeleygw/package.py28
-rw-r--r--var/spack/repos/builtin/packages/bigdft-atlab/package.py8
-rw-r--r--var/spack/repos/builtin/packages/bigdft-chess/package.py14
-rw-r--r--var/spack/repos/builtin/packages/bigdft-core/package.py12
-rw-r--r--var/spack/repos/builtin/packages/bigdft-futile/package.py8
-rw-r--r--var/spack/repos/builtin/packages/bigdft-libabinit/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bigdft-psolver/package.py10
-rw-r--r--var/spack/repos/builtin/packages/bigdft-spred/package.py8
-rw-r--r--var/spack/repos/builtin/packages/binutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bitgroomingz/package.py2
-rw-r--r--var/spack/repos/builtin/packages/blaspp/package.py6
-rw-r--r--var/spack/repos/builtin/packages/blast-plus/package.py24
-rw-r--r--var/spack/repos/builtin/packages/blis/package.py6
-rw-r--r--var/spack/repos/builtin/packages/bml/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bohrium/package.py16
-rw-r--r--var/spack/repos/builtin/packages/boinc-client/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bookleaf-cpp/package.py8
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py36
-rw-r--r--var/spack/repos/builtin/packages/botan/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bowtie/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bricks/package.py2
-rw-r--r--var/spack/repos/builtin/packages/butterflypack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/bzip2/package.py8
-rw-r--r--var/spack/repos/builtin/packages/c-blosc/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cabana/package.py2
-rw-r--r--var/spack/repos/builtin/packages/caffe/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cairo/package.py2
-rw-r--r--var/spack/repos/builtin/packages/caliper/package.py20
-rw-r--r--var/spack/repos/builtin/packages/camellia/package.py2
-rw-r--r--var/spack/repos/builtin/packages/camp/package.py4
-rw-r--r--var/spack/repos/builtin/packages/camx/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cantera/package.py8
-rw-r--r--var/spack/repos/builtin/packages/capnproto/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cardioid/package.py4
-rw-r--r--var/spack/repos/builtin/packages/care/package.py4
-rw-r--r--var/spack/repos/builtin/packages/castep/package.py4
-rw-r--r--var/spack/repos/builtin/packages/ccs-qcd/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cdhit/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cdo/package.py8
-rw-r--r--var/spack/repos/builtin/packages/ceres-solver/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cfitsio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cgal/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cgm/package.py8
-rw-r--r--var/spack/repos/builtin/packages/cgns/package.py6
-rw-r--r--var/spack/repos/builtin/packages/chai/package.py12
-rw-r--r--var/spack/repos/builtin/packages/chameleon/package.py8
-rw-r--r--var/spack/repos/builtin/packages/channelflow/package.py2
-rw-r--r--var/spack/repos/builtin/packages/charliecloud/package.py4
-rw-r--r--var/spack/repos/builtin/packages/charmpp/package.py32
-rw-r--r--var/spack/repos/builtin/packages/chatterbug/package.py4
-rw-r--r--var/spack/repos/builtin/packages/chombo/package.py6
-rw-r--r--var/spack/repos/builtin/packages/citcoms/package.py8
-rw-r--r--var/spack/repos/builtin/packages/clamr/package.py8
-rw-r--r--var/spack/repos/builtin/packages/clapack/package.py2
-rw-r--r--var/spack/repos/builtin/packages/clingo-bootstrap/package.py2
-rw-r--r--var/spack/repos/builtin/packages/clingo/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cln/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cloverleaf-ref/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cloverleaf/package.py28
-rw-r--r--var/spack/repos/builtin/packages/cloverleaf3d/package.py18
-rw-r--r--var/spack/repos/builtin/packages/cmake/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cmdstan/package.py8
-rw-r--r--var/spack/repos/builtin/packages/cntk/package.py12
-rw-r--r--var/spack/repos/builtin/packages/codes/package.py2
-rw-r--r--var/spack/repos/builtin/packages/coevp/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cohmm/package.py4
-rw-r--r--var/spack/repos/builtin/packages/comd/package.py10
-rw-r--r--var/spack/repos/builtin/packages/compadre/package.py6
-rw-r--r--var/spack/repos/builtin/packages/conduit/package.py44
-rw-r--r--var/spack/repos/builtin/packages/conquest/package.py4
-rw-r--r--var/spack/repos/builtin/packages/converge/package.py14
-rw-r--r--var/spack/repos/builtin/packages/coreutils/package.py2
-rw-r--r--var/spack/repos/builtin/packages/cosma/package.py8
-rw-r--r--var/spack/repos/builtin/packages/cosmomc/package.py10
-rw-r--r--var/spack/repos/builtin/packages/cosp2/package.py4
-rw-r--r--var/spack/repos/builtin/packages/costa/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cp2k/package.py76
-rw-r--r--var/spack/repos/builtin/packages/cpio/package.py4
-rw-r--r--var/spack/repos/builtin/packages/cray-libsci/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cray-mpich/package.py4
-rw-r--r--var/spack/repos/builtin/packages/crtm-fix/package.py6
-rw-r--r--var/spack/repos/builtin/packages/cudnn/package.py4
-rw-r--r--var/spack/repos/builtin/packages/curl/package.py12
88 files changed, 370 insertions, 370 deletions
diff --git a/var/spack/repos/builtin/packages/babelstream/package.py b/var/spack/repos/builtin/packages/babelstream/package.py
index 8ac554fd9b..b1f518de1f 100644
--- a/var/spack/repos/builtin/packages/babelstream/package.py
+++ b/var/spack/repos/builtin/packages/babelstream/package.py
@@ -253,7 +253,7 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
# SYCL
# ===================================
- if "+sycl" in self.spec:
+ if self.spec.satisfies("+sycl"):
args.append("-DSYCL_COMPILER=" + self.spec.variants["implementation"].value.upper())
if self.spec.variants["implementation"].value.upper() != "ONEAPI-DPCPP":
args.append(
@@ -266,7 +266,7 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
# SYCL 2020
# ===================================
- if "+sycl2020" in self.spec:
+ if self.spec.satisfies("+sycl2020"):
if self.spec.satisfies("%oneapi"):
# -fsycl flag is required for setting up sycl/sycl.hpp seems like
# it doesn't get it from the CMake file
@@ -288,7 +288,7 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
# HIP(ROCM)
# ===================================
- if "+rocm" in self.spec:
+ if self.spec.satisfies("+rocm"):
hip_comp = self.spec["rocm"].prefix + "/bin/hipcc"
args.append("-DCMAKE_CXX_COMPILER=" + hip_comp)
args.append(
@@ -303,14 +303,14 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
# TBB
# ===================================
- if "+tbb" in self.spec:
+ if self.spec.satisfies("+tbb"):
args.append("-DONE_TBB_DIR=" + self.spec["tbb"].prefix + "/tbb/latest/")
args.append("-DPARTITIONER=" + self.spec.variants["partitioner"].value.upper())
# ===================================
# OpenCL (ocl)
# ===================================
- if "+ocl" in self.spec:
+ if self.spec.satisfies("+ocl"):
if "backend" in self.spec.variants:
if "cuda" in self.spec.variants["backend"].value:
cuda_dir = self.spec["cuda"].prefix
@@ -333,7 +333,7 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
# ===================================
# RAJA
# ===================================
- if "+raja" in self.spec:
+ if self.spec.satisfies("+raja"):
args.append("-DCMAKE_CXX_COMPILER=" + self.compiler.cxx)
args.append("-DRAJA_IN_TREE=" + self.spec.variants["dir"].value)
if "offload" in self.spec.variants:
@@ -360,7 +360,7 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
# ===================================
# THRUST
# ===================================
- if "+thrust" in self.spec:
+ if self.spec.satisfies("+thrust"):
if "cuda" in self.spec.variants["implementation"].value:
args.append("-DTHRUST_IMPL=" + self.spec.variants["implementation"].value.upper())
args.append("-SDK_DIR=" + self.spec["thrust"].prefix + "/include")
@@ -385,7 +385,7 @@ class Babelstream(CMakePackage, CudaPackage, ROCmPackage):
# ===================================
# kokkos implementation is versatile and it could use cuda or omp architectures as backend
# The usage should be spack install babelstream +kokkos +cuda [or +omp]
- if "+kokkos" in self.spec:
+ if self.spec.satisfies("+kokkos"):
args.append("-DCMAKE_CXX_COMPILER=" + self.compiler.cxx)
args.append("-DKOKKOS_IN_TREE=" + self.spec.variants["dir"].value)
# args.append("-DKOKKOS_IN_PACKAGE=" + self.spec["kokkos"].prefix)
diff --git a/var/spack/repos/builtin/packages/bart/package.py b/var/spack/repos/builtin/packages/bart/package.py
index 5bb8a2c6d2..03895d2444 100644
--- a/var/spack/repos/builtin/packages/bart/package.py
+++ b/var/spack/repos/builtin/packages/bart/package.py
@@ -62,7 +62,7 @@ class Bart(MakefilePackage, CudaPackage):
if "^netlib-lapack+lapacke" not in spec:
env["NOLAPACKE"] = "1"
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
cuda_arch = self.spec.variants["cuda_arch"].value
env["CUDA"] = "1"
env["CUDA_BASE"] = spec["cuda"].prefix
@@ -79,7 +79,7 @@ class Bart(MakefilePackage, CudaPackage):
install("python/cfl.py", python_platlib)
install("python/wslsupport.py", python_platlib)
- if "^python@3:" in spec:
+ if spec.satisfies("^python@3:"):
install("python/bartview3.py", join_path(prefix.bin, "bartview"))
filter_file(r"#!/usr/bin/python3", "#!/usr/bin/env python", prefix.bin.bartview)
else:
diff --git a/var/spack/repos/builtin/packages/barvinok/package.py b/var/spack/repos/builtin/packages/barvinok/package.py
index 867025f02c..3be94ae144 100644
--- a/var/spack/repos/builtin/packages/barvinok/package.py
+++ b/var/spack/repos/builtin/packages/barvinok/package.py
@@ -33,6 +33,6 @@ class Barvinok(AutotoolsPackage):
spec = self.spec
args = ["--with-gmp-prefix={0}".format(self.spec["gmp"].prefix)]
- if "+pet" in spec:
+ if spec.satisfies("+pet"):
args.append("--with-pet=bundled")
return args
diff --git a/var/spack/repos/builtin/packages/bcftools/package.py b/var/spack/repos/builtin/packages/bcftools/package.py
index 05cf578bf9..44b8dedc26 100644
--- a/var/spack/repos/builtin/packages/bcftools/package.py
+++ b/var/spack/repos/builtin/packages/bcftools/package.py
@@ -100,7 +100,7 @@ class Bcftools(AutotoolsPackage):
options.append("prefix={0}".format(self.prefix))
options.append("HTSDIR={0}".format(self.spec["htslib"].prefix))
- if "+libgsl" in self.spec:
+ if self.spec.satisfies("+libgsl"):
options.append("USE_GPL=1")
return options
diff --git a/var/spack/repos/builtin/packages/beatnik/package.py b/var/spack/repos/builtin/packages/beatnik/package.py
index 2000a7a80a..ac817cca25 100644
--- a/var/spack/repos/builtin/packages/beatnik/package.py
+++ b/var/spack/repos/builtin/packages/beatnik/package.py
@@ -84,7 +84,7 @@ class Beatnik(CMakePackage, CudaPackage, ROCmPackage):
# Use hipcc as the c compiler if we are compiling for rocm. Doing it this way
# keeps the wrapper insted of changeing CMAKE_CXX_COMPILER keeps the spack wrapper
# and the rpaths it sets for us from the underlying spec.
- if "+rocm" in self.spec:
+ if self.spec.satisfies("+rocm"):
env["SPACK_CXX"] = self.spec["hip"].hipcc
# If we're building with cray mpich, we need to make sure we get the GTL library for
diff --git a/var/spack/repos/builtin/packages/berkeleygw/package.py b/var/spack/repos/builtin/packages/berkeleygw/package.py
index a6003995bd..2c7f433c18 100644
--- a/var/spack/repos/builtin/packages/berkeleygw/package.py
+++ b/var/spack/repos/builtin/packages/berkeleygw/package.py
@@ -122,7 +122,7 @@ class Berkeleygw(MakefilePackage):
tar("-x", "-f", self.stage.archive_file, "--strip-components=1")
# get generic arch.mk template
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
copy(join_path(self.stage.source_path, "config", "generic.mpi.linux.mk"), "arch.mk")
else:
copy(join_path(self.stage.source_path, "config", "generic.serial.linux.mk"), "arch.mk")
@@ -189,27 +189,27 @@ class Berkeleygw(MakefilePackage):
buildopts = []
paraflags = []
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
paraflags.append("-DMPI")
# We need to copy fflags in case we append to it (#34019):
fflags = spec.compiler_flags["fflags"][:]
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
paraflags.append("-DOMP")
fflags.append(self.compiler.openmp_flag)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
buildopts.append("C_PARAFLAG=-DPARA")
buildopts.append("PARAFLAG=%s" % " ".join(paraflags))
debugflag = ""
- if "+debug" in spec:
+ if spec.satisfies("+debug"):
debugflag += "-DDEBUG "
- if "+verbose" in spec:
+ if spec.satisfies("+verbose"):
debugflag += "-DVERBOSE "
buildopts.append("DEBUGFLAG=%s" % debugflag)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
buildopts.append("LINK=%s" % spec["mpi"].mpifc)
buildopts.append("C_LINK=%s" % spec["mpi"].mpicxx)
else:
@@ -228,7 +228,7 @@ class Berkeleygw(MakefilePackage):
buildopts.append("LAPACKLIB=%s" % spec["lapack"].libs.ld_flags)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
mathflags.append("-DUSESCALAPACK")
buildopts.append("SCALAPACKLIB=%s" % spec["scalapack"].libs.ld_flags)
@@ -236,7 +236,7 @@ class Berkeleygw(MakefilePackage):
buildopts.append("COMPFLAG=-DINTEL")
buildopts.append("MOD_OPT=-module ")
buildopts.append("FCPP=cpp -C -P -ffreestanding")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
buildopts.append("F90free=%s -free" % spec["mpi"].mpifc)
buildopts.append("C_COMP=%s" % spec["mpi"].mpicc)
buildopts.append("CC_COMP=%s" % spec["mpi"].mpicxx)
@@ -262,7 +262,7 @@ class Berkeleygw(MakefilePackage):
buildopts.append(
"FCPP=%s -C -nostdinc -std=c11" % join_path(self.compiler.prefix, "bin", "cpp")
)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
buildopts.append("F90free=%s %s" % (spec["mpi"].mpifc, f90_flags))
buildopts.append("C_COMP=%s %s" % (spec["mpi"].mpicc, c_flags))
buildopts.append("CC_COMP=%s %s" % (spec["mpi"].mpicxx, cxx_flags))
@@ -278,7 +278,7 @@ class Berkeleygw(MakefilePackage):
buildopts.append("COMPFLAG=")
buildopts.append("MOD_OPT=-module ")
buildopts.append("FCPP=cpp -C -nostdinc")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
buildopts.append("F90free=%s %s" % (spec["mpi"].mpifc, f90_flags))
buildopts.append("C_COMP=%s %s" % (spec["mpi"].mpicc, c_flags))
buildopts.append("CC_COMP=%s %s" % (spec["mpi"].mpicxx, cxx_flags))
@@ -293,16 +293,16 @@ class Berkeleygw(MakefilePackage):
"BerkeleyGW with compiler %s" % spec.compiler
)
- if "+hdf5" in spec:
+ if spec.satisfies("+hdf5"):
mathflags.append("-DHDF5")
buildopts.append("HDF5INCLUDE=%s" % spec["hdf5"].prefix.include)
buildopts.append("HDF5LIB=%s" % spec["hdf5:hl,fortran"].libs.ld_flags)
- if "+elpa" in spec:
+ if spec.satisfies("+elpa"):
mathflags.append("-DUSEELPA")
elpa = spec["elpa"]
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
elpa_suffix = "_openmp"
else:
elpa_suffix = ""
diff --git a/var/spack/repos/builtin/packages/bigdft-atlab/package.py b/var/spack/repos/builtin/packages/bigdft-atlab/package.py
index 08792adde4..77c9236b22 100644
--- a/var/spack/repos/builtin/packages/bigdft-atlab/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-atlab/package.py
@@ -51,7 +51,7 @@ class BigdftAtlab(AutotoolsPackage):
cflags = []
cxxflags = []
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
fcflags.append(self.compiler.openmp_flag)
if spec.satisfies("+shared"):
@@ -74,7 +74,7 @@ class BigdftAtlab(AutotoolsPackage):
if spec.satisfies("+shared"):
args.append("--enable-dynamic-libraries")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append(f"CC={spec['mpi'].mpicc}")
args.append(f"CXX={spec['mpi'].mpicxx}")
args.append(f"FC={spec['mpi'].mpifc}")
@@ -83,12 +83,12 @@ class BigdftAtlab(AutotoolsPackage):
else:
args.append("--disable-mpi")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("--with-openmp")
else:
args.append("--without-openmp")
- if "+openbabel" in spec:
+ if spec.satisfies("+openbabel"):
args.append("--enable-openbabel")
args.append(f"--with-openbabel-libs={spec['openbabel'].prefix.lib}")
args.append(f"--with-openbabel-incs={spec['openbabel'].prefix.include}")
diff --git a/var/spack/repos/builtin/packages/bigdft-chess/package.py b/var/spack/repos/builtin/packages/bigdft-chess/package.py
index 54664c8f73..319ce8e432 100644
--- a/var/spack/repos/builtin/packages/bigdft-chess/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-chess/package.py
@@ -60,11 +60,11 @@ class BigdftChess(AutotoolsPackage, CudaPackage):
pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
openmp_flag.append(self.compiler.openmp_flag)
linalg = []
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
linalg.append(spec["scalapack"].libs.ld_flags)
linalg.append(spec["lapack"].libs.ld_flags)
linalg.append(spec["blas"].libs.ld_flags)
@@ -83,7 +83,7 @@ class BigdftChess(AutotoolsPackage, CudaPackage):
if spec.satisfies("+shared"):
args.append("--enable-dynamic-libraries")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append(f"CC={spec['mpi'].mpicc}")
args.append(f"CXX={spec['mpi'].mpicxx}")
args.append(f"FC={spec['mpi'].mpifc}")
@@ -92,22 +92,22 @@ class BigdftChess(AutotoolsPackage, CudaPackage):
else:
args.append("--disable-mpi")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("--with-openmp")
else:
args.append("--without-openmp")
args.append(f"--with-atlab-libs={spec['bigdft-atlab'].prefix.lib}")
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append("--enable-cuda-gpu")
args.append(f"--with-cuda-path={spec['cuda'].prefix}")
args.append(f"--with-cuda-libs={spec['cuda'].libs.link_flags}")
- if "+minpack" in spec:
+ if spec.satisfies("+minpack"):
args.append("--with-minpack")
- if "+ntpoly" in spec:
+ if spec.satisfies("+ntpoly"):
args.append("--enable-ntpoly")
return args
diff --git a/var/spack/repos/builtin/packages/bigdft-core/package.py b/var/spack/repos/builtin/packages/bigdft-core/package.py
index 5b9b61aa36..0da285fb0b 100644
--- a/var/spack/repos/builtin/packages/bigdft-core/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-core/package.py
@@ -64,11 +64,11 @@ class BigdftCore(AutotoolsPackage, CudaPackage):
pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
openmp_flag.append(self.compiler.openmp_flag)
linalg = []
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
linalg.append(spec["scalapack"].libs.ld_flags)
linalg.append(spec["lapack"].libs.ld_flags)
linalg.append(spec["blas"].libs.ld_flags)
@@ -96,7 +96,7 @@ class BigdftCore(AutotoolsPackage, CudaPackage):
if spec.satisfies("+shared"):
args.append("--enable-dynamic-libraries")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append(f"CC={spec['mpi'].mpicc}")
args.append(f"CXX={spec['mpi'].mpicxx}")
args.append(f"FC={spec['mpi'].mpifc}")
@@ -105,19 +105,19 @@ class BigdftCore(AutotoolsPackage, CudaPackage):
else:
args.append("--disable-mpi")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("--with-openmp")
else:
args.append("--without-openmp")
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append("--enable-opencl")
args.append(f"--with-ocl-path={spec['cuda'].prefix}")
args.append("--enable-cuda-gpu")
args.append(f"--with-cuda-path={spec['cuda'].prefix}")
args.append(f"--with-cuda-libs={spec['cuda'].libs.link_flags}")
- if "+openbabel" in spec:
+ if spec.satisfies("+openbabel"):
args.append("--enable-openbabel")
args.append(f"--with-openbabel-libs={spec['openbabel'].prefix.lib}")
args.append(f"--with-openbabel-incs={spec['openbabel'].prefix.include}")
diff --git a/var/spack/repos/builtin/packages/bigdft-futile/package.py b/var/spack/repos/builtin/packages/bigdft-futile/package.py
index ca65dc29a9..431a42b57b 100644
--- a/var/spack/repos/builtin/packages/bigdft-futile/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-futile/package.py
@@ -58,7 +58,7 @@ class BigdftFutile(AutotoolsPackage, CudaPackage):
pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
openmp_flag.append(self.compiler.openmp_flag)
args = [
@@ -71,12 +71,12 @@ class BigdftFutile(AutotoolsPackage, CudaPackage):
if spec.satisfies("+shared"):
args.append("--enable-dynamic-libraries")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("--with-openmp")
else:
args.append("--without-openmp")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append(f"CC={spec['mpi'].mpicc}")
args.append(f"CXX={spec['mpi'].mpicxx}")
args.append(f"FC={spec['mpi'].mpifc}")
@@ -85,7 +85,7 @@ class BigdftFutile(AutotoolsPackage, CudaPackage):
else:
args.append("--disable-mpi")
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append("--enable-opencl")
args.append(f"--with-ocl-path={spec['cuda'].prefix}")
args.append("--enable-cuda-gpu")
diff --git a/var/spack/repos/builtin/packages/bigdft-libabinit/package.py b/var/spack/repos/builtin/packages/bigdft-libabinit/package.py
index 451e720656..f1696615ba 100644
--- a/var/spack/repos/builtin/packages/bigdft-libabinit/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-libabinit/package.py
@@ -66,7 +66,7 @@ class BigdftLibabinit(AutotoolsPackage):
if spec.satisfies("+shared"):
args.append("--enable-dynamic-libraries")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.extend(
[
f"CC={spec['mpi'].mpicc}",
diff --git a/var/spack/repos/builtin/packages/bigdft-psolver/package.py b/var/spack/repos/builtin/packages/bigdft-psolver/package.py
index 7557b28b45..62a1cf48ae 100644
--- a/var/spack/repos/builtin/packages/bigdft-psolver/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-psolver/package.py
@@ -59,11 +59,11 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
openmp_flag.append(self.compiler.openmp_flag)
linalg = []
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
linalg.append(spec["scalapack"].libs.ld_flags)
linalg.append(spec["lapack"].libs.ld_flags)
linalg.append(spec["blas"].libs.ld_flags)
@@ -81,7 +81,7 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
if spec.satisfies("+shared"):
args.append("--enable-dynamic-libraries")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append(f"CC={spec['mpi'].mpicc}")
args.append(f"CXX={spec['mpi'].mpicxx}")
args.append(f"FC={spec['mpi'].mpifc}")
@@ -90,14 +90,14 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
else:
args.append("--disable-mpi")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("--with-openmp")
else:
args.append("--without-openmp")
args.append(f"--with-atlab-libs={spec['bigdft-atlab'].prefix.lib}")
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append("--enable-cuda-gpu")
args.append(f"--with-cuda-path={spec['cuda'].prefix}")
args.append(f"--with-cuda-libs={spec['cuda'].libs.link_flags}")
diff --git a/var/spack/repos/builtin/packages/bigdft-spred/package.py b/var/spack/repos/builtin/packages/bigdft-spred/package.py
index f468e67a92..566508aeb0 100644
--- a/var/spack/repos/builtin/packages/bigdft-spred/package.py
+++ b/var/spack/repos/builtin/packages/bigdft-spred/package.py
@@ -57,11 +57,11 @@ class BigdftSpred(AutotoolsPackage):
pyyaml = join_path(spec["py-pyyaml"].prefix.lib, f"python{python_version}")
openmp_flag = []
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
openmp_flag.append(self.compiler.openmp_flag)
linalg = []
- if "+scalapack" in spec:
+ if spec.satisfies("+scalapack"):
linalg.append(spec["scalapack"].libs.ld_flags)
linalg.append(spec["lapack"].libs.ld_flags)
linalg.append(spec["blas"].libs.ld_flags)
@@ -82,7 +82,7 @@ class BigdftSpred(AutotoolsPackage):
if spec.satisfies("+shared"):
args.append("--enable-dynamic-libraries")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append(f"CC={spec['mpi'].mpicc}")
args.append(f"CXX={spec['mpi'].mpicxx}")
args.append(f"FC={spec['mpi'].mpifc}")
@@ -91,7 +91,7 @@ class BigdftSpred(AutotoolsPackage):
else:
args.append("--disable-mpi")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args.append("--with-openmp")
else:
args.append("--without-openmp")
diff --git a/var/spack/repos/builtin/packages/binutils/package.py b/var/spack/repos/builtin/packages/binutils/package.py
index 637ccca6c2..85ef788279 100644
--- a/var/spack/repos/builtin/packages/binutils/package.py
+++ b/var/spack/repos/builtin/packages/binutils/package.py
@@ -286,7 +286,7 @@ class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder):
args += self.enable_or_disable("lto")
args += self.enable_or_disable("nls")
args += self.enable_or_disable("plugins")
- if "+pgo" in self.spec:
+ if self.spec.satisfies("+pgo"):
args.append("--enable-pgo-build=lto")
else:
args.append("--disable-pgo-build")
diff --git a/var/spack/repos/builtin/packages/bitgroomingz/package.py b/var/spack/repos/builtin/packages/bitgroomingz/package.py
index 57727803d5..85430a1579 100644
--- a/var/spack/repos/builtin/packages/bitgroomingz/package.py
+++ b/var/spack/repos/builtin/packages/bitgroomingz/package.py
@@ -25,7 +25,7 @@ class Bitgroomingz(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/blaspp/package.py b/var/spack/repos/builtin/packages/blaspp/package.py
index b6ba591ed6..e58d274483 100644
--- a/var/spack/repos/builtin/packages/blaspp/package.py
+++ b/var/spack/repos/builtin/packages/blaspp/package.py
@@ -91,11 +91,11 @@ class Blaspp(CMakePackage, CudaPackage, ROCmPackage):
backend_config = "-Duse_cuda=%s" % ("+cuda" in spec)
if self.version >= Version("2021.04.01"):
backend = "none"
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
backend = "cuda"
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
backend = "hip"
- if "+sycl" in spec:
+ if spec.satisfies("+sycl"):
backend = "sycl"
backend_config = "-Dgpu_backend=%s" % backend
diff --git a/var/spack/repos/builtin/packages/blast-plus/package.py b/var/spack/repos/builtin/packages/blast-plus/package.py
index cb5a3589bd..ffc98650cd 100644
--- a/var/spack/repos/builtin/packages/blast-plus/package.py
+++ b/var/spack/repos/builtin/packages/blast-plus/package.py
@@ -94,7 +94,7 @@ class BlastPlus(AutotoolsPackage):
if spec.target.family != "aarch64":
config_args.append("--with-64")
- if "+static" in spec:
+ if spec.satisfies("+static"):
config_args.append("--with-static")
# FIXME
# args << "--with-static-exe" unless OS.linux?
@@ -102,17 +102,17 @@ class BlastPlus(AutotoolsPackage):
else:
config_args.extend(["--with-dll", "--without-static", "--without-static-exe"])
- if "+jpeg" in spec:
+ if spec.satisfies("+jpeg"):
config_args.append("--with-jpeg={0}".format(self.spec["jpeg"].prefix))
else:
config_args.append("--without-jpeg")
- if "+png" in spec:
+ if spec.satisfies("+png"):
config_args.append("--with-png={0}".format(self.spec["libpng"].prefix))
else:
config_args.append("--without-png")
- if "+freetype" in spec:
+ if spec.satisfies("+freetype"):
config_args.append("--with-freetype={0}".format(self.spec["freetype"].prefix))
else:
config_args.append("--without-freetype")
@@ -126,42 +126,42 @@ class BlastPlus(AutotoolsPackage):
# else:
# config_args.append('--without-hdf5')
- if "+zlib" in spec:
+ if spec.satisfies("+zlib"):
config_args.append("--with-z={0}".format(self.spec["zlib-api"].prefix))
else:
config_args.append("--without-z")
- if "+bzip2" in spec:
+ if spec.satisfies("+bzip2"):
config_args.append("--with-bz2={0}".format(self.spec["bzip2"].prefix))
else:
config_args.append("--without-bz2")
- if "+lzo" in spec:
+ if spec.satisfies("+lzo"):
config_args.append("--with-lzo={0}".format(self.spec["lzo"].prefix))
else:
config_args.append("--without-lzo")
- if "+gnutls" in spec:
+ if spec.satisfies("+gnutls"):
config_args.append("--with-gnutls={0}".format(self.spec["gnutls"].prefix))
else:
config_args.append("--without-gnutls")
- if "+openssl" in spec:
+ if spec.satisfies("+openssl"):
config_args.append("--with-openssl={0}".format(self.spec["openssl"].prefix))
else:
config_args.append("--without-openssl")
- if "+pcre" in spec:
+ if spec.satisfies("+pcre"):
config_args.append("--with-pcre={0}".format(self.spec["pcre"].prefix))
else:
config_args.append("--without-pcre")
- if "+python" in spec:
+ if spec.satisfies("+python"):
config_args.append("--with-python={0}".format(self.spec["python"].home))
else:
config_args.append("--without-python")
- if "+perl" in spec:
+ if spec.satisfies("+perl"):
config_args.append("--with-perl={0}".format(self.spec["perl"].prefix))
else:
config_args.append("--without-python")
diff --git a/var/spack/repos/builtin/packages/blis/package.py b/var/spack/repos/builtin/packages/blis/package.py
index e298ca6a69..56524abfd7 100644
--- a/var/spack/repos/builtin/packages/blis/package.py
+++ b/var/spack/repos/builtin/packages/blis/package.py
@@ -55,17 +55,17 @@ class BlisBase(MakefilePackage):
spec = self.spec
config_args = ["--enable-threading={0}".format(spec.variants["threads"].value)]
- if "+ilp64" in spec:
+ if spec.satisfies("+ilp64"):
config_args.append("--blas-int-size=64")
else:
config_args.append("--blas-int-size=32")
- if "+cblas" in spec:
+ if spec.satisfies("+cblas"):
config_args.append("--enable-cblas")
else:
config_args.append("--disable-cblas")
- if "+blas" in spec:
+ if spec.satisfies("+blas"):
config_args.append("--enable-blas")
else:
config_args.append("--disable-blas")
diff --git a/var/spack/repos/builtin/packages/bml/package.py b/var/spack/repos/builtin/packages/bml/package.py
index a2f7eecb0d..5eb36f7063 100644
--- a/var/spack/repos/builtin/packages/bml/package.py
+++ b/var/spack/repos/builtin/packages/bml/package.py
@@ -49,7 +49,7 @@ class Bml(CMakePackage):
def cmake_args(self):
args = [self.define_from_variant("BUILD_SHARED_LIBS", "shared")]
spec = self.spec
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append("-DBML_MPI=True")
args.append("-DCMAKE_C_COMPILER=%s" % spec["mpi"].mpicc)
args.append("-DCMAKE_CXX_COMPILER=%s" % spec["mpi"].mpicxx)
diff --git a/var/spack/repos/builtin/packages/bohrium/package.py b/var/spack/repos/builtin/packages/bohrium/package.py
index c9f01ae431..a49e30b439 100644
--- a/var/spack/repos/builtin/packages/bohrium/package.py
+++ b/var/spack/repos/builtin/packages/bohrium/package.py
@@ -148,7 +148,7 @@ class Bohrium(CMakePackage, CudaPackage):
#
args += ["-DVE_OPENCL=" + str("+opencl" in spec), "-DVE_CUDA=" + str("+cuda" in spec)]
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
args += [
"-DVE_OPENMP=ON",
"-DOPENMP_FOUND=True",
@@ -160,7 +160,7 @@ class Bohrium(CMakePackage, CudaPackage):
#
# Extension methods
#
- if "+blas" in spec:
+ if spec.satisfies("+blas"):
args += [
"-DEXT_BLAS=ON",
"-DCBLAS_FOUND=True",
@@ -170,7 +170,7 @@ class Bohrium(CMakePackage, CudaPackage):
else:
args += ["-DEXT_BLAS=OFF", "-DDCBLAS_FOUND=False"]
- if "+lapack" in spec:
+ if spec.satisfies("+lapack"):
args += [
"-DEXT_LAPACK=ON",
"-DLAPACKE_FOUND=True",
@@ -180,7 +180,7 @@ class Bohrium(CMakePackage, CudaPackage):
else:
args += ["-DEXT_LAPACK=OFF", "-DLAPACKE_FOUND=False"]
- if "+opencv" in spec:
+ if spec.satisfies("+opencv"):
args += [
"-DEXT_OPENCV=ON",
"-DOpenCV_FOUND=True",
@@ -234,11 +234,11 @@ class Bohrium(CMakePackage, CudaPackage):
# Collect the stacks which should be available:
stacks = ["default"]
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
stacks.append("openmp")
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
stacks.append("cuda")
- if "+opencl" in spec:
+ if spec.satisfies("+opencl"):
stacks.append("opencl")
# C++ compiler and compiler flags
@@ -268,7 +268,7 @@ class Bohrium(CMakePackage, CudaPackage):
compare_output(cpp_output, "Success!\n")
# Python test (if +python)
- if "+python" in spec:
+ if spec.satisfies("+python"):
file_pyadd = join_path(os.path.dirname(self.module.__file__), "pyadd.py")
py_output = python(file_pyadd, output=str, env=test_env)
compare_output(py_output, "Success!\n")
diff --git a/var/spack/repos/builtin/packages/boinc-client/package.py b/var/spack/repos/builtin/packages/boinc-client/package.py
index 5e120eeccf..b58a1ef7c1 100644
--- a/var/spack/repos/builtin/packages/boinc-client/package.py
+++ b/var/spack/repos/builtin/packages/boinc-client/package.py
@@ -60,7 +60,7 @@ class BoincClient(AutotoolsPackage):
args.append("--disable-server")
args.append("--enable-client")
- if "+manager" in spec:
+ if spec.satisfies("+manager"):
args.append("--enable-manager")
else:
args.append("--disable-manager")
diff --git a/var/spack/repos/builtin/packages/bookleaf-cpp/package.py b/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
index b9d9df610c..54611870df 100644
--- a/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
+++ b/var/spack/repos/builtin/packages/bookleaf-cpp/package.py
@@ -39,16 +39,16 @@ class BookleafCpp(CMakePackage):
spec = self.spec
cmake_args = []
- if "+typhon" in spec:
+ if spec.satisfies("+typhon"):
cmake_args.append("-DENABLE_TYPHON=ON")
- if "+parmetis" in spec:
+ if spec.satisfies("+parmetis"):
cmake_args.append("-DENABLE_PARMETIS=ON")
- if "+silo" in spec:
+ if spec.satisfies("+silo"):
cmake_args.append("-DENABLE_SILO=ON")
- if "+caliper" in spec:
+ if spec.satisfies("+caliper"):
cmake_args.append("-DENABLE_CALIPER=ON")
return cmake_args
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index 0447cee7bd..d0da3cdb7d 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -507,10 +507,10 @@ class Boost(Package):
options.append("--with-toolset=%s" % boost_toolset_id)
options.append("--with-libraries=%s" % ",".join(with_libs))
- if "+python" in spec:
+ if spec.satisfies("+python"):
options.append("--with-python=%s" % spec["python"].command.path)
- if "+icu" in spec:
+ if spec.satisfies("+icu"):
options.append("--with-icu")
else:
options.append("--without-icu")
@@ -522,7 +522,7 @@ class Boost(Package):
# Skip this on Windows since we don't have a cl.exe wrapper in spack
f.write("using {0} : : {1} ;\n".format(boost_toolset_id, spack_cxx))
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
# Use the correct mpi compiler. If the compiler options are
# empty or undefined, Boost will attempt to figure out the
# correct options by running "${mpicxx} -show" or something
@@ -532,21 +532,21 @@ class Boost(Package):
mpi_line = "using mpi : %s" % spec["mpi"].mpicxx
f.write(mpi_line + " ;\n")
- if "+python" in spec:
+ if spec.satisfies("+python"):
f.write(self.bjam_python_line(spec))
def determine_b2_options(self, spec, options):
- if "+debug" in spec:
+ if spec.satisfies("+debug"):
options.append("variant=debug")
else:
options.append("variant=release")
- if "+icu" in spec:
+ if spec.satisfies("+icu"):
options.extend(["-s", "ICU_PATH=%s" % spec["icu4c"].prefix])
else:
options.append("--disable-icu")
- if "+iostreams" in spec:
+ if spec.satisfies("+iostreams"):
options.extend(
[
"-s",
@@ -568,17 +568,17 @@ class Boost(Package):
]
)
# At least with older Xcode, _lzma_cputhreads is missing (#33998)
- if "platform=darwin" in self.spec:
+ if self.spec.satisfies("platform=darwin"):
options.extend(["-s", "NO_LZMA=1"])
link_types = ["static"]
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
link_types.append("shared")
threading_opts = []
- if "+multithreaded" in spec:
+ if spec.satisfies("+multithreaded"):
threading_opts.append("multi")
- if "+singlethreaded" in spec:
+ if spec.satisfies("+singlethreaded"):
threading_opts.append("single")
if not threading_opts:
raise RuntimeError(
@@ -589,9 +589,9 @@ class Boost(Package):
if "+context" in spec and "context-impl" in spec.variants:
options.extend(["context-impl=%s" % spec.variants["context-impl"].value])
- if "+taggedlayout" in spec:
+ if spec.satisfies("+taggedlayout"):
layout = "tagged"
- elif "+versionedlayout" in spec:
+ elif spec.satisfies("+versionedlayout"):
layout = "versioned"
else:
if len(threading_opts) > 1:
@@ -623,7 +623,7 @@ class Boost(Package):
if flag:
cxxflags.append(flag)
- if "+pic" in self.spec:
+ if self.spec.satisfies("+pic"):
cxxflags.append(self.compiler.cxx_pic_flag)
# clang is not officially supported for pre-compiled headers
@@ -632,7 +632,7 @@ class Boost(Package):
# https://svn.boost.org/trac/boost/ticket/12496
if spec.satisfies("%apple-clang") or spec.satisfies("%clang") or spec.satisfies("%fj"):
options.extend(["pch=off"])
- if "+clanglibcpp" in spec:
+ if spec.satisfies("+clanglibcpp"):
cxxflags.append("-stdlib=libc++")
options.extend(["toolset=clang", 'linkflags="-stdlib=libc++"'])
elif spec.satisfies("%xl") or spec.satisfies("%xl_r"):
@@ -696,7 +696,7 @@ class Boost(Package):
with_libs.remove("random")
if not spec.satisfies("@1.39.0:") and "exception" in with_libs:
with_libs.remove("exception")
- if "+graph" in spec and "+mpi" in spec:
+ if spec.satisfies("+graph") and spec.satisfies("+mpi"):
with_libs.append("graph_parallel")
if not with_libs:
@@ -753,7 +753,7 @@ class Boost(Package):
threading_opts = self.determine_b2_options(spec, b2_options)
# Create headers if building from a git checkout
- if "@develop" in spec:
+ if spec.satisfies("@develop"):
b2("headers", *b2_options)
b2("--clean", *b2_options)
@@ -766,7 +766,7 @@ class Boost(Package):
else:
b2("install", *b2_options)
- if "+multithreaded" in spec and "~taggedlayout" in spec:
+ if spec.satisfies("+multithreaded") and spec.satisfies("~taggedlayout"):
self.add_buildopt_symlinks(prefix)
# The shared libraries are not installed correctly
diff --git a/var/spack/repos/builtin/packages/botan/package.py b/var/spack/repos/builtin/packages/botan/package.py
index 9a16a46547..c9dd90fbf0 100644
--- a/var/spack/repos/builtin/packages/botan/package.py
+++ b/var/spack/repos/builtin/packages/botan/package.py
@@ -60,7 +60,7 @@ class Botan(MakefilePackage):
def configure_args(self):
spec = self.spec
args = ["--prefix={0}".format(self.prefix)]
- if "+doc" in spec:
+ if spec.satisfies("+doc"):
args.append("--with-documentation")
else:
args.append("--without-documentation")
diff --git a/var/spack/repos/builtin/packages/bowtie/package.py b/var/spack/repos/builtin/packages/bowtie/package.py
index cabf35d67d..593ae4adef 100644
--- a/var/spack/repos/builtin/packages/bowtie/package.py
+++ b/var/spack/repos/builtin/packages/bowtie/package.py
@@ -74,7 +74,7 @@ class Bowtie(MakefilePackage):
makefile.filter("CXX = .*", "CPP = " + env["CXX"])
def build(self, spec, prefix):
- if "+tbb" in spec:
+ if spec.satisfies("+tbb"):
make()
else:
make("NO_TBB=1")
diff --git a/var/spack/repos/builtin/packages/bricks/package.py b/var/spack/repos/builtin/packages/bricks/package.py
index adef4b41c2..64962089be 100644
--- a/var/spack/repos/builtin/packages/bricks/package.py
+++ b/var/spack/repos/builtin/packages/bricks/package.py
@@ -47,7 +47,7 @@ class Bricks(CMakePackage):
def cmake_args(self):
"""CMake arguments for configure stage"""
args = [self.define_from_variant("BRICK_USE_OPENCL", "cuda")]
- if "+cuda" in self.spec:
+ if self.spec.satisfies("+cuda"):
args.append(f"-DOCL_ROOT:STRING={self.spec['opencl-clhpp'].prefix}")
return args
diff --git a/var/spack/repos/builtin/packages/butterflypack/package.py b/var/spack/repos/builtin/packages/butterflypack/package.py
index 3d2e8db6b3..7fc6cbd77b 100644
--- a/var/spack/repos/builtin/packages/butterflypack/package.py
+++ b/var/spack/repos/builtin/packages/butterflypack/package.py
@@ -79,7 +79,7 @@ class Butterflypack(CMakePackage):
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
]
args.append("-Denable_openmp=%s" % ("ON" if "+openmp" in spec else "OFF"))
- if "%cce" in spec:
+ if spec.satisfies("%cce"):
# Assume the proper Cray CCE module (cce) is loaded:
craylibs_var = "CRAYLIBS_" + str(spec.target.family).upper()
craylibs_path = env.get(craylibs_var, None)
diff --git a/var/spack/repos/builtin/packages/bzip2/package.py b/var/spack/repos/builtin/packages/bzip2/package.py
index 1a60cd030c..7bcb0bfc34 100644
--- a/var/spack/repos/builtin/packages/bzip2/package.py
+++ b/var/spack/repos/builtin/packages/bzip2/package.py
@@ -65,9 +65,9 @@ class Bzip2(Package, SourcewarePackage):
def flag_handler(self, name, flags):
if name == "cflags":
- if "+pic" in self.spec:
+ if self.spec.satisfies("+pic"):
flags.append(self.compiler.cc_pic_flag)
- if "+debug" in self.spec:
+ if self.spec.satisfies("+debug"):
flags.append("-g")
return (flags, None, None)
@@ -123,7 +123,7 @@ class Bzip2(Package, SourcewarePackage):
def install(self, spec, prefix):
# Build the dynamic library first
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
make("-f", "Makefile-libbz2_so")
# Build the static library and everything else
@@ -145,7 +145,7 @@ class Bzip2(Package, SourcewarePackage):
make()
make("install", "PREFIX={0}".format(prefix))
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
install("bzip2-shared", join_path(prefix.bin, "bzip2"))
v1, v2, v3 = (self.spec.version.up_to(i) for i in (1, 2, 3))
diff --git a/var/spack/repos/builtin/packages/c-blosc/package.py b/var/spack/repos/builtin/packages/c-blosc/package.py
index fe16bcb620..28919db066 100644
--- a/var/spack/repos/builtin/packages/c-blosc/package.py
+++ b/var/spack/repos/builtin/packages/c-blosc/package.py
@@ -54,7 +54,7 @@ class CBlosc(CMakePackage):
def cmake_args(self):
args = []
- if "+avx2" in self.spec:
+ if self.spec.satisfies("+avx2"):
args.append("-DDEACTIVATE_AVX2=OFF")
else:
args.append("-DDEACTIVATE_AVX2=ON")
diff --git a/var/spack/repos/builtin/packages/cabana/package.py b/var/spack/repos/builtin/packages/cabana/package.py
index 556d2ae2cf..f2d90bbf20 100644
--- a/var/spack/repos/builtin/packages/cabana/package.py
+++ b/var/spack/repos/builtin/packages/cabana/package.py
@@ -144,7 +144,7 @@ class Cabana(CMakePackage, CudaPackage, ROCmPackage):
options.append(self.define(cbn_disable, "ON"))
# Use hipcc for HIP.
- if "+rocm" in self.spec:
+ if self.spec.satisfies("+rocm"):
options.append(self.define("CMAKE_CXX_COMPILER", self.spec["hip"].hipcc))
return options
diff --git a/var/spack/repos/builtin/packages/caffe/package.py b/var/spack/repos/builtin/packages/caffe/package.py
index fc0b3db426..ee8a65d94d 100644
--- a/var/spack/repos/builtin/packages/caffe/package.py
+++ b/var/spack/repos/builtin/packages/caffe/package.py
@@ -92,7 +92,7 @@ class Caffe(CMakePackage, CudaPackage):
]
)
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
if spec.variants["cuda_arch"].value[0] != "none":
cuda_arch = spec.variants["cuda_arch"].value
args.append(self.define("CUDA_ARCH_NAME", "Manual"))
diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py
index 6d220d2027..52af9c58bf 100644
--- a/var/spack/repos/builtin/packages/cairo/package.py
+++ b/var/spack/repos/builtin/packages/cairo/package.py
@@ -83,7 +83,7 @@ class Cairo(AutotoolsPackage):
def configure_args(self):
args = ["--disable-trace", "--enable-tee"] # can cause problems with libiberty
- if "+X" in self.spec:
+ if self.spec.satisfies("+X"):
args.extend(["--enable-xlib", "--enable-xcb"])
else:
args.extend(["--disable-xlib", "--disable-xcb"])
diff --git a/var/spack/repos/builtin/packages/caliper/package.py b/var/spack/repos/builtin/packages/caliper/package.py
index 904e808de1..af82c89b90 100644
--- a/var/spack/repos/builtin/packages/caliper/package.py
+++ b/var/spack/repos/builtin/packages/caliper/package.py
@@ -159,40 +159,40 @@ class Caliper(CMakePackage, CudaPackage, ROCmPackage):
self.define_from_variant("WITH_KOKKOS", "kokkos"),
]
- if "+papi" in spec:
+ if spec.satisfies("+papi"):
args.append("-DPAPI_PREFIX=%s" % spec["papi"].prefix)
- if "+libdw" in spec:
+ if spec.satisfies("+libdw"):
args.append("-DLIBDW_PREFIX=%s" % spec["elfutils"].prefix)
- if "+libpfm" in spec:
+ if spec.satisfies("+libpfm"):
args.append("-DLIBPFM_INSTALL=%s" % spec["libpfm4"].prefix)
- if "+sosflow" in spec:
+ if spec.satisfies("+sosflow"):
args.append("-DSOS_PREFIX=%s" % spec["sosflow"].prefix)
- if "+variorum" in spec:
+ if spec.satisfies("+variorum"):
args.append("-DVARIORUM_PREFIX=%s" % spec["variorum"].prefix)
# -DWITH_CALLPATH was renamed -DWITH_LIBUNWIND in 2.5
callpath_flag = "LIBUNWIND" if spec.satisfies("@2.5:") else "CALLPATH"
- if "+libunwind" in spec:
+ if spec.satisfies("+libunwind"):
args.append("-DLIBUNWIND_PREFIX=%s" % spec["unwind"].prefix)
args.append("-DWITH_%s=On" % callpath_flag)
else:
args.append("-DWITH_%s=Off" % callpath_flag)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append("-DMPI_C_COMPILER=%s" % spec["mpi"].mpicc)
args.append("-DMPI_CXX_COMPILER=%s" % spec["mpi"].mpicxx)
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append("-DCUDA_TOOLKIT_ROOT_DIR=%s" % spec["cuda"].prefix)
# technically only works with cuda 10.2+, otherwise cupti is in
# ${CUDA_TOOLKIT_ROOT_DIR}/extras/CUPTI
args.append("-DCUPTI_PREFIX=%s" % spec["cuda"].prefix)
- if "+vtune" in spec:
+ if spec.satisfies("+vtune"):
itt_dir = join_path(spec["intel-oneapi-vtune"].prefix, "vtune", "latest")
args.append("-DITT_PREFIX=%s" % itt_dir)
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
args.append("-DCMAKE_CXX_COMPILER={0}".format(spec["hip"].hipcc))
args.append("-DROCM_PREFIX=%s" % spec["hsa-rocr-dev"].prefix)
diff --git a/var/spack/repos/builtin/packages/camellia/package.py b/var/spack/repos/builtin/packages/camellia/package.py
index 1ae8241347..2e0c0fbb02 100644
--- a/var/spack/repos/builtin/packages/camellia/package.py
+++ b/var/spack/repos/builtin/packages/camellia/package.py
@@ -49,7 +49,7 @@ class Camellia(CMakePackage):
"-DBUILD_FOR_INSTALL:BOOL=ON",
]
- if "+moab" in spec:
+ if spec.satisfies("+moab"):
options.extend(["-DENABLE_MOAB:BOOL=ON", "-DMOAB_PATH:PATH=%s" % spec["moab"].prefix])
else:
options.append("-DENABLE_MOAB:BOOL=OFF")
diff --git a/var/spack/repos/builtin/packages/camp/package.py b/var/spack/repos/builtin/packages/camp/package.py
index 324a075ecb..6e1d44188d 100644
--- a/var/spack/repos/builtin/packages/camp/package.py
+++ b/var/spack/repos/builtin/packages/camp/package.py
@@ -75,7 +75,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
options.append("-DBLT_SOURCE_DIR={0}".format(spec["blt"].prefix))
options.append(self.define_from_variant("ENABLE_CUDA", "cuda"))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
options.append("-DCUDA_TOOLKIT_ROOT_DIR={0}".format(spec["cuda"].prefix))
if not spec.satisfies("cuda_arch=none"):
@@ -86,7 +86,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
options.append("-DCMAKE_CUDA_FLAGS:STRING={0}".format(flag))
options.append(self.define_from_variant("ENABLE_HIP", "rocm"))
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
options.append("-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix))
archs = self.spec.variants["amdgpu_target"].value
diff --git a/var/spack/repos/builtin/packages/camx/package.py b/var/spack/repos/builtin/packages/camx/package.py
index 92b995dd73..08249b3e8e 100644
--- a/var/spack/repos/builtin/packages/camx/package.py
+++ b/var/spack/repos/builtin/packages/camx/package.py
@@ -92,7 +92,7 @@ else ifneq (, $(findstring $(MPI),openmpi openMPI OPENMPI))""",
)
makefile.filter("OPENMPI MVAPICH", "OPENMPI MVAPICH IntelMPI", string=True)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
# Substitute CC, FC.
makefile.filter("CC = .*", "CC = " + spec["mpi"].mpicc)
makefile.filter("FC = .*", "FC = " + spec["mpi"].mpifc)
@@ -122,7 +122,7 @@ parlib :
compiler = os.path.basename(env["FC"]) + omp
args = ["COMPILER={0}".format(compiler)]
# Set MPI.
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
mpi = self.spec["mpi"]
args += ["MPI={0}".format(mpi.name), "MPI_INST={0}".format(mpi.prefix)]
return args
diff --git a/var/spack/repos/builtin/packages/cantera/package.py b/var/spack/repos/builtin/packages/cantera/package.py
index 94a8c4c1fb..2be36b1d91 100644
--- a/var/spack/repos/builtin/packages/cantera/package.py
+++ b/var/spack/repos/builtin/packages/cantera/package.py
@@ -118,7 +118,7 @@ class Cantera(SConsPackage):
)
# Sundials support
- if "+sundials" in spec:
+ if spec.satisfies("+sundials"):
if spec.satisfies("@2.3.0:"):
args.append("system_sundials=y")
else:
@@ -137,7 +137,7 @@ class Cantera(SConsPackage):
)
# Python module
- if "+python" in spec:
+ if spec.satisfies("+python"):
args.extend(["python_package=full", "python_cmd={0}".format(python.path)])
if spec["python"].satisfies("@3:"):
args.extend(["python3_package=y", "python3_cmd={0}".format(python.path)])
@@ -148,7 +148,7 @@ class Cantera(SConsPackage):
args.append("python3_package=n")
# Matlab toolbox
- if "+matlab" in spec:
+ if spec.satisfies("+matlab"):
args.extend(["matlab_toolbox=y", "matlab_path={0}".format(spec["matlab"].prefix)])
else:
args.append("matlab_toolbox=n")
@@ -156,7 +156,7 @@ class Cantera(SConsPackage):
return args
def build_test(self):
- if "+python" in self.spec:
+ if self.spec.satisfies("+python"):
# Tests will always fail if Python dependencies aren't built
# In addition, 3 of the tests fail when run in parallel
scons("test", parallel=False)
diff --git a/var/spack/repos/builtin/packages/capnproto/package.py b/var/spack/repos/builtin/packages/capnproto/package.py
index f590f876c2..dfa56ac9f1 100644
--- a/var/spack/repos/builtin/packages/capnproto/package.py
+++ b/var/spack/repos/builtin/packages/capnproto/package.py
@@ -53,12 +53,12 @@ class Capnproto(AutotoolsPackage):
def configure_args(self):
args = []
- if "+tls" in self.spec:
+ if self.spec.satisfies("+tls"):
args.append("--with-openssl")
else:
args.append("--without-openssl")
- if "+zlib" in self.spec:
+ if self.spec.satisfies("+zlib"):
args.append("--with-zlib")
else:
args.append("--without-zlib")
diff --git a/var/spack/repos/builtin/packages/cardioid/package.py b/var/spack/repos/builtin/packages/cardioid/package.py
index de91899e2b..0f0bc8b31d 100644
--- a/var/spack/repos/builtin/packages/cardioid/package.py
+++ b/var/spack/repos/builtin/packages/cardioid/package.py
@@ -48,12 +48,12 @@ class Cardioid(CMakePackage):
"-DCMAKE_CXX_COMPILER:STRING=" + spec["mpi"].mpicxx,
]
- if "+cuda" in self.spec:
+ if self.spec.satisfies("+cuda"):
args.append("-DENABLE_CUDA:BOOL=ON")
args.append("-DCUDA_TOOLKIT_ROOT:PATH=" + spec["cuda"].prefix)
else:
args.append("-DENABLE_CUDA:BOOL=OFF")
- if "+mfem" in self.spec:
+ if self.spec.satisfies("+mfem"):
args.append("-DMFEM_DIR:PATH=" + spec["mfem"].prefix)
return args
diff --git a/var/spack/repos/builtin/packages/care/package.py b/var/spack/repos/builtin/packages/care/package.py
index 68583088d6..34fdc7d3a0 100644
--- a/var/spack/repos/builtin/packages/care/package.py
+++ b/var/spack/repos/builtin/packages/care/package.py
@@ -123,7 +123,7 @@ class Care(CMakePackage, CudaPackage, ROCmPackage):
options = []
options.append("-DBLT_SOURCE_DIR={0}".format(spec["blt"].prefix))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
options.extend(
[
"-DENABLE_CUDA=ON",
@@ -143,7 +143,7 @@ class Care(CMakePackage, CudaPackage, ROCmPackage):
else:
options.append("-DENABLE_CUDA=OFF")
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
options.extend(["-DENABLE_HIP=ON", "-DHIP_ROOT_DIR={0}".format(spec["hip"].prefix)])
archs = self.spec.variants["amdgpu_target"].value
diff --git a/var/spack/repos/builtin/packages/castep/package.py b/var/spack/repos/builtin/packages/castep/package.py
index 66689fb48c..5024935173 100644
--- a/var/spack/repos/builtin/packages/castep/package.py
+++ b/var/spack/repos/builtin/packages/castep/package.py
@@ -59,13 +59,13 @@ class Castep(MakefilePackage):
spec = self.spec
targetlist = [f"PWD={self.stage.source_path}"]
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
targetlist.append("COMMS_ARCH=mpi")
targetlist.append(f"FFTLIBDIR={spec['fftw-api'].prefix.lib}")
targetlist.append(f"MATHLIBDIR={spec['blas'].prefix.lib}")
- if "^mkl" in spec:
+ if spec.satisfies("^mkl"):
targetlist.append("FFT=mkl")
if self.spec.satisfies("@20:"):
targetlist.append("MATHLIBS=mkl")
diff --git a/var/spack/repos/builtin/packages/ccs-qcd/package.py b/var/spack/repos/builtin/packages/ccs-qcd/package.py
index 1c437a6359..49125e3049 100644
--- a/var/spack/repos/builtin/packages/ccs-qcd/package.py
+++ b/var/spack/repos/builtin/packages/ccs-qcd/package.py
@@ -69,7 +69,7 @@ class CcsQcd(MakefilePackage):
chgopt,
join_path(self.stage.source_path, "src", "make.gfortran.inc"),
)
- if "%fj" in spec:
+ if spec.satisfies("%fj"):
filter_file(
"mpifrtpx",
spec["mpi"].mpifc,
@@ -95,7 +95,7 @@ class CcsQcd(MakefilePackage):
def build(self, spec, prefix):
ccs_class = "CLASS=" + spec.variants["class"].value
with working_dir("src"):
- if "%fj" in spec:
+ if spec.satisfies("%fj"):
make("MAKE_INC=make.fx10.inc", ccs_class)
else:
make("MAKE_INC=make.gfortran.inc", ccs_class)
diff --git a/var/spack/repos/builtin/packages/cdhit/package.py b/var/spack/repos/builtin/packages/cdhit/package.py
index 15923d966f..1816717dc2 100644
--- a/var/spack/repos/builtin/packages/cdhit/package.py
+++ b/var/spack/repos/builtin/packages/cdhit/package.py
@@ -38,9 +38,9 @@ class Cdhit(MakefilePackage):
def build(self, spec, prefix):
mkdirp(prefix.bin)
make_args = []
- if "~openmp" in spec:
+ if spec.satisfies("~openmp"):
make_args.append("openmp=no")
- if "~zlib" in spec:
+ if spec.satisfies("~zlib"):
make_args.append("zlib=no")
make(*make_args)
diff --git a/var/spack/repos/builtin/packages/cdo/package.py b/var/spack/repos/builtin/packages/cdo/package.py
index af1b14fc48..2d617d33f8 100644
--- a/var/spack/repos/builtin/packages/cdo/package.py
+++ b/var/spack/repos/builtin/packages/cdo/package.py
@@ -218,7 +218,7 @@ class Cdo(AutotoolsPackage):
prefix = self.spec[spec_name].prefix
return "yes" if is_system_path(prefix) else prefix
- if "+netcdf" in self.spec:
+ if self.spec.satisfies("+netcdf"):
config_args.append("--with-netcdf=" + yes_or_prefix("netcdf-c"))
# We need to make sure that the libtool script of libcdi - the
# internal library of CDO - finds the correct version of hdf5.
@@ -251,12 +251,12 @@ class Cdo(AutotoolsPackage):
if self.spec.satisfies("@1.9:"):
config_args.append("--without-eccodes")
- if "+external-grib1" in self.spec:
+ if self.spec.satisfies("+external-grib1"):
config_args.append("--disable-cgribex")
else:
config_args.append("--enable-cgribex")
- if "+szip" in self.spec:
+ if self.spec.satisfies("+szip"):
config_args.append("--with-szlib=" + yes_or_prefix("szip"))
else:
config_args.append("--without-szlib")
@@ -267,7 +267,7 @@ class Cdo(AutotoolsPackage):
"udunits2", activation_value=lambda x: yes_or_prefix("udunits")
)
- if "+libxml2" in self.spec:
+ if self.spec.satisfies("+libxml2"):
libxml2_spec = self.spec["libxml2"]
if is_system_path(libxml2_spec.prefix):
config_args.append("--with-libxml2=yes")
diff --git a/var/spack/repos/builtin/packages/ceres-solver/package.py b/var/spack/repos/builtin/packages/ceres-solver/package.py
index b70deaab6a..7c7af49a4b 100644
--- a/var/spack/repos/builtin/packages/ceres-solver/package.py
+++ b/var/spack/repos/builtin/packages/ceres-solver/package.py
@@ -52,17 +52,17 @@ class CeresSolver(CMakePackage):
]
)
- if "+suitesparse" in self.spec:
+ if self.spec.satisfies("+suitesparse"):
args.append("-DSUITESPARSE=ON")
else:
args.append("-DSUITESPARSE=OFF")
- if "+shared" in self.spec:
+ if self.spec.satisfies("+shared"):
args.append("-DBUILD_SHARED_LIBS=ON")
else:
args.append("-DBUILD_SHARED_LIBS=OFF")
- if "+examples" in self.spec:
+ if self.spec.satisfies("+examples"):
args.append("-DBUILD_EXAMPLES=ON")
else:
args.append("-DBUILD_EXAMPLES=OFF")
diff --git a/var/spack/repos/builtin/packages/cfitsio/package.py b/var/spack/repos/builtin/packages/cfitsio/package.py
index 46422d4be0..c8bc0ba5b7 100644
--- a/var/spack/repos/builtin/packages/cfitsio/package.py
+++ b/var/spack/repos/builtin/packages/cfitsio/package.py
@@ -48,7 +48,7 @@ class Cfitsio(AutotoolsPackage):
def configure_args(self):
spec = self.spec
extra_args = []
- if "+bzip2" in spec:
+ if spec.satisfies("+bzip2"):
extra_args.append(f"--with-bzip2={spec['bzip2'].prefix}"),
return extra_args
@@ -57,7 +57,7 @@ class Cfitsio(AutotoolsPackage):
targets = ["all"]
# Build shared if variant is set.
- if "+shared" in self.spec:
+ if self.spec.satisfies("+shared"):
targets += ["shared"]
return targets
diff --git a/var/spack/repos/builtin/packages/cgal/package.py b/var/spack/repos/builtin/packages/cgal/package.py
index daa2a48f06..1817007758 100644
--- a/var/spack/repos/builtin/packages/cgal/package.py
+++ b/var/spack/repos/builtin/packages/cgal/package.py
@@ -104,7 +104,7 @@ class Cgal(CMakePackage):
env.set("BOOST_INCLUDEDIR", spec["boost"].headers.directories[0])
env.set("BOOST_LIBRARYDIR", spec["boost"].libs.directories[0])
- if "+eigen" in spec:
+ if spec.satisfies("+eigen"):
env.set("EIGEN3_INC_DIR", spec["eigen"].headers.directories[0])
def cmake_args(self):
diff --git a/var/spack/repos/builtin/packages/cgm/package.py b/var/spack/repos/builtin/packages/cgm/package.py
index 1d81247db3..d3cfeff804 100644
--- a/var/spack/repos/builtin/packages/cgm/package.py
+++ b/var/spack/repos/builtin/packages/cgm/package.py
@@ -33,7 +33,7 @@ class Cgm(AutotoolsPackage):
spec = self.spec
args = []
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.extend(
[
"--with-mpi",
@@ -44,15 +44,15 @@ class Cgm(AutotoolsPackage):
else:
args.append("--without-mpi")
- if "+oce" in spec:
+ if spec.satisfies("+oce"):
args.append("--with-occ={0}".format(spec["oce"].prefix))
else:
args.append("--without-occ")
- if "+debug" in spec:
+ if spec.satisfies("+debug"):
args.append("--enable-debug")
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
args.append("--enable-shared")
return args
diff --git a/var/spack/repos/builtin/packages/cgns/package.py b/var/spack/repos/builtin/packages/cgns/package.py
index d6abd25088..6ffdb00717 100644
--- a/var/spack/repos/builtin/packages/cgns/package.py
+++ b/var/spack/repos/builtin/packages/cgns/package.py
@@ -110,10 +110,10 @@ class Cgns(CMakePackage):
"-DCMAKE_CXX_COMPILER=%s" % spec["mpi"].mpicxx,
]
)
- if "+fortran" in spec:
+ if spec.satisfies("+fortran"):
options.append(self.define("CMAKE_Fortran_COMPILER", spec["mpi"].mpifc))
- if "+hdf5" in spec:
+ if spec.satisfies("+hdf5"):
options.extend(
[
"-DCGNS_ENABLE_HDF5:BOOL=ON",
@@ -122,7 +122,7 @@ class Cgns(CMakePackage):
"-DHDF5_LIBRARY_DIR:PATH=%s" % spec["hdf5"].prefix.lib,
]
)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
options.extend(["-DHDF5_NEED_MPI:BOOL=ON", "-DHDF5_ENABLE_PARALLEL:BOOL=ON"])
else:
options.extend(["-DCGNS_ENABLE_HDF5=OFF"])
diff --git a/var/spack/repos/builtin/packages/chai/package.py b/var/spack/repos/builtin/packages/chai/package.py
index 877b42fe4a..2d408dbc0a 100644
--- a/var/spack/repos/builtin/packages/chai/package.py
+++ b/var/spack/repos/builtin/packages/chai/package.py
@@ -209,7 +209,7 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
# Default entries are already defined in CachedCMakePackage, inherit them:
entries = super().initconfig_compiler_entries()
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
entries.insert(0, cmake_cache_path("CMAKE_CXX_COMPILER", spec["hip"].hipcc))
llnl_link_helpers(entries, spec, compiler)
@@ -224,16 +224,16 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
entries.append("# Package custom hardware settings")
entries.append("#------------------{0}\n".format("-" * 30))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
entries.append(cmake_cache_option("ENABLE_CUDA", True))
- if "+separable_compilation" in spec:
+ if spec.satisfies("+separable_compilation"):
entries.append(cmake_cache_option("CMAKE_CUDA_SEPARABLE_COMPILATION", True))
entries.append(cmake_cache_option("CUDA_SEPARABLE_COMPILATION", True))
else:
entries.append(cmake_cache_option("ENABLE_CUDA", False))
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
entries.append(cmake_cache_option("ENABLE_HIP", True))
else:
entries.append(cmake_cache_option("ENABLE_HIP", False))
@@ -260,7 +260,7 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
entries.append("#------------------{0}\n".format("-" * 60))
entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix))
- if "+raja" in spec:
+ if spec.satisfies("+raja"):
entries.append(cmake_cache_option("{}ENABLE_RAJA_PLUGIN".format(option_prefix), True))
entries.append(cmake_cache_path("RAJA_DIR", spec["raja"].prefix))
entries.append(cmake_cache_path("umpire_DIR", spec["umpire"].prefix))
@@ -278,7 +278,7 @@ class Chai(CachedCMakePackage, CudaPackage, ROCmPackage):
entries.append(cmake_cache_option("ENABLE_OPENMP", "+openmp" in spec))
entries.append(cmake_cache_option("ENABLE_EXAMPLES", "+examples" in spec))
entries.append(cmake_cache_option("ENABLE_DOCS", False))
- if "tests=benchmarks" in spec:
+ if spec.satisfies("tests=benchmarks"):
# BLT requires ENABLE_TESTS=True to enable benchmarks
entries.append(cmake_cache_option("ENABLE_BENCHMARKS", True))
entries.append(cmake_cache_option("ENABLE_TESTS", True))
diff --git a/var/spack/repos/builtin/packages/chameleon/package.py b/var/spack/repos/builtin/packages/chameleon/package.py
index 8a600cdb8d..a6af23d186 100644
--- a/var/spack/repos/builtin/packages/chameleon/package.py
+++ b/var/spack/repos/builtin/packages/chameleon/package.py
@@ -114,14 +114,14 @@ class Chameleon(CMakePackage, CudaPackage):
)
if spec.satisfies("~simgrid"):
- if "^intel-mkl" in spec or "^intel-parallel-studio+mkl" in spec:
- if "threads=none" in spec:
+ if spec.satisfies("^intel-mkl") or spec.satisfies("^intel-parallel-studio+mkl"):
+ if spec.satisfies("threads=none"):
args.extend([self.define("BLA_VENDOR", "Intel10_64lp_seq")])
else:
args.extend([self.define("BLA_VENDOR", "Intel10_64lp")])
- elif "^netlib-lapack" in spec:
+ elif spec.satisfies("^netlib-lapack"):
args.extend([self.define("BLA_VENDOR", "Generic")])
- elif "^openblas" in spec:
+ elif spec.satisfies("^openblas"):
args.extend([self.define("BLA_VENDOR", "OpenBLAS")])
return args
diff --git a/var/spack/repos/builtin/packages/channelflow/package.py b/var/spack/repos/builtin/packages/channelflow/package.py
index bd8352c710..ca802875cd 100644
--- a/var/spack/repos/builtin/packages/channelflow/package.py
+++ b/var/spack/repos/builtin/packages/channelflow/package.py
@@ -76,7 +76,7 @@ class Channelflow(CMakePackage):
args.append("-DWITH_NETCDF:STRING={0}".format(netcdf_str[spec.variants["netcdf"].value]))
# Set an MPI compiler for parallel builds
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
args.append("-DCMAKE_CXX_COMPILER:PATH={0}".format(spec["mpi"].mpicxx))
return args
diff --git a/var/spack/repos/builtin/packages/charliecloud/package.py b/var/spack/repos/builtin/packages/charliecloud/package.py
index 0bc1f030c5..98035a2751 100644
--- a/var/spack/repos/builtin/packages/charliecloud/package.py
+++ b/var/spack/repos/builtin/packages/charliecloud/package.py
@@ -161,14 +161,14 @@ class Charliecloud(AutotoolsPackage):
py_path = self.spec["python"].command.path
args.append("--with-python={0}".format(py_path))
- if "+docs" in self.spec:
+ if self.spec.satisfies("+docs"):
sphinx_bin = "{0}".format(self.spec["py-sphinx"].prefix.bin)
args.append("--enable-html")
args.append("--with-sphinx-build={0}".format(sphinx_bin.join("sphinx-build")))
else:
args.append("--disable-html")
- if "+squashfuse" in self.spec:
+ if self.spec.satisfies("+squashfuse"):
squashfuse_prefix = "{0}".format(self.spec["squashfuse"].prefix)
args.append("--with-libsquashfuse={0}".format(squashfuse_prefix))
diff --git a/var/spack/repos/builtin/packages/charmpp/package.py b/var/spack/repos/builtin/packages/charmpp/package.py
index 5d0e230d68..abed322050 100644
--- a/var/spack/repos/builtin/packages/charmpp/package.py
+++ b/var/spack/repos/builtin/packages/charmpp/package.py
@@ -277,7 +277,7 @@ class Charmpp(Package):
def install(self, spec, prefix):
if not ("backend=mpi" in self.spec) or not ("backend=netlrts" in self.spec):
- if "+pthreads" in self.spec:
+ if self.spec.satisfies("+pthreads"):
raise InstallError(
"The pthreads option is only\
available on the Netlrts and MPI \
@@ -289,7 +289,7 @@ class Charmpp(Package):
or ("backend=ofi" in self.spec)
or ("backend=gni" in self.spec)
):
- if "pmi=none" in self.spec:
+ if self.spec.satisfies("pmi=none"):
raise InstallError(
"The UCX/OFI/GNI backends need \
PMI to run. Please add pmi=... \
@@ -302,7 +302,7 @@ class Charmpp(Package):
or ("pmi=slurmpmi" in self.spec)
or ("pmi=slurmpmi2" in self.spec)
):
- if "^openmpi" in self.spec:
+ if self.spec.satisfies("^openmpi"):
raise InstallError(
"To use any process management \
interface other than PMIx, \
@@ -324,15 +324,15 @@ class Charmpp(Package):
options.append("-j%d" % make_jobs)
options.append("--destination=%s" % builddir)
- if "pmi=slurmpmi" in spec:
+ if spec.satisfies("pmi=slurmpmi"):
options.append("slurmpmi")
- if "pmi=slurmpmi2" in spec:
+ if spec.satisfies("pmi=slurmpmi2"):
options.append("slurmpmi2")
- if "pmi=pmix" in spec:
+ if spec.satisfies("pmi=pmix"):
options.append("ompipmix")
options.extend(["--basedir=%s" % spec["openmpi"].prefix])
- if "backend=mpi" in spec:
+ if spec.satisfies("backend=mpi"):
# in intelmpi <prefix>/include and <prefix>/lib fails so --basedir
# cannot be used
options.extend(
@@ -342,9 +342,9 @@ class Charmpp(Package):
["--libdir={0}".format(libdir) for libdir in spec["mpi"].libs.directories]
)
- if "backend=ucx" in spec:
+ if spec.satisfies("backend=ucx"):
options.extend(["--basedir=%s" % spec["ucx"].prefix])
- if "+papi" in spec:
+ if spec.satisfies("+papi"):
options.extend(["papi", "--basedir=%s" % spec["papi"].prefix])
if "+smp" in spec and "backend=multicore" not in spec:
# The 'multicore' backend always uses SMP, so we don't have to
@@ -352,7 +352,7 @@ class Charmpp(Package):
# of Charm++ v7.0.0 it is actually a build error to append 'smp'
# with the 'multicore' backend.
options.append("smp")
- if "+tcp" in spec:
+ if spec.satisfies("+tcp"):
if "backend=netlrts" not in spec:
# This is a Charm++ limitation; it would lead to a
# build error
@@ -360,18 +360,18 @@ class Charmpp(Package):
"The +tcp variant requires " "the backend=netlrts communication mechanism"
)
options.append("tcp")
- if "+omp" in spec:
+ if spec.satisfies("+omp"):
options.append("omp")
- if "+pthreads" in spec:
+ if spec.satisfies("+pthreads"):
options.append("pthreads")
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
options.append("cuda")
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
options.append("--build-shared")
- if "+production" in spec:
+ if spec.satisfies("+production"):
options.append("--with-production")
- if "+tracing" in spec:
+ if spec.satisfies("+tracing"):
options.append("--enable-tracing")
# Call "make" via the build script
diff --git a/var/spack/repos/builtin/packages/chatterbug/package.py b/var/spack/repos/builtin/packages/chatterbug/package.py
index b7fff4fc1c..d8d7c0351e 100644
--- a/var/spack/repos/builtin/packages/chatterbug/package.py
+++ b/var/spack/repos/builtin/packages/chatterbug/package.py
@@ -39,13 +39,13 @@ class Chatterbug(MakefilePackage):
return targets
def build(self, spec, prefix):
- if "+scorep" in spec:
+ if spec.satisfies("+scorep"):
make("WITH_OTF2=YES")
else:
make()
def install(self, spec, prefix):
- if "+scorep" in spec:
+ if spec.satisfies("+scorep"):
make("WITH_OTF2=YES", "PREFIX=" + spec.prefix, "install")
else:
make("PREFIX=" + spec.prefix, "install")
diff --git a/var/spack/repos/builtin/packages/chombo/package.py b/var/spack/repos/builtin/packages/chombo/package.py
index 73a03560b2..0f50baf3d5 100644
--- a/var/spack/repos/builtin/packages/chombo/package.py
+++ b/var/spack/repos/builtin/packages/chombo/package.py
@@ -84,7 +84,7 @@ class Chombo(MakefilePackage):
# Compilers and Compiler flags
defs_file.filter(r"^#\s*CXX\s*=.*", "CXX = %s" % spack_cxx)
defs_file.filter(r"^#\s*FC\s*=.*", "FC = %s" % spack_fc)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
defs_file.filter(r"^#\s*MPICXX\s*=.*", "MPICXX = %s" % self.spec["mpi"].mpicxx)
# Conditionally determined settings
@@ -92,7 +92,7 @@ class Chombo(MakefilePackage):
defs_file.filter(r"^#\s*DIM\s*=.*", "DIM = %s" % spec.variants["dims"].value)
# HDF5 settings
- if "+hdf5" in spec:
+ if spec.satisfies("+hdf5"):
defs_file.filter(r"^#\s*USE_HDF5\s*=.*", "USE_HDF5 = TRUE")
defs_file.filter(
r"^#\s*HDFINCFLAGS\s*=.*", "HDFINCFLAGS = -I%s" % spec["hdf5"].prefix.include
@@ -100,7 +100,7 @@ class Chombo(MakefilePackage):
defs_file.filter(
r"^#\s*HDFLIBFLAGS\s*=.*", "HDFLIBFLAGS = %s" % spec["hdf5"].libs.ld_flags
)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
defs_file.filter(
r"^#\s*HDFMPIINCFLAGS\s*=.*",
"HDFMPIINCFLAGS = -I%s" % spec["hdf5"].prefix.include,
diff --git a/var/spack/repos/builtin/packages/citcoms/package.py b/var/spack/repos/builtin/packages/citcoms/package.py
index ae71db7661..c697d05a02 100644
--- a/var/spack/repos/builtin/packages/citcoms/package.py
+++ b/var/spack/repos/builtin/packages/citcoms/package.py
@@ -43,7 +43,7 @@ class Citcoms(AutotoolsPackage):
depends_on("hdf5+mpi", when="+hdf5")
def setup_build_environment(self, env):
- if "+ggrd" in self.spec:
+ if self.spec.satisfies("+ggrd"):
env.set("HC_HOME", self.spec["hc"].prefix)
def configure_args(self):
@@ -54,17 +54,17 @@ class Citcoms(AutotoolsPackage):
args.append("--without-pyre")
args.append("--without-exchanger")
- if "+ggrd" in self.spec:
+ if self.spec.satisfies("+ggrd"):
args.append("--with-ggrd")
else:
args.append("--without-ggrd")
- if "+cuda" in self.spec:
+ if self.spec.satisfies("+cuda"):
args.append("--with-cuda")
else:
args.append("--without-cuda")
- if "+hdf5" in self.spec:
+ if self.spec.satisfies("+hdf5"):
args.extend(
[
"--with-hdf5",
diff --git a/var/spack/repos/builtin/packages/clamr/package.py b/var/spack/repos/builtin/packages/clamr/package.py
index b879eeeef3..84ae3108a4 100644
--- a/var/spack/repos/builtin/packages/clamr/package.py
+++ b/var/spack/repos/builtin/packages/clamr/package.py
@@ -44,16 +44,16 @@ class Clamr(CMakePackage):
def cmake_args(self):
spec = self.spec
cmake_args = []
- if "graphics=none" in spec:
+ if spec.satisfies("graphics=none"):
cmake_args.append("-DGRAPHICS_TYPE=None")
- elif "graphics=mpe" in spec:
+ elif spec.satisfies("graphics=mpe"):
cmake_args.append("-DGRAPHICS_TYPE=MPE")
else:
cmake_args.append("-DGRAPHICS_TYPE=OpenGL")
- if "precision=full" in spec:
+ if spec.satisfies("precision=full"):
cmake_args.append("-DPRECISION_TYPE=full_precision")
- elif "precision=single" in spec:
+ elif spec.satisfies("precision=single"):
cmake_args.append("-DPRECISION_TYPE=minimum_precision")
else:
cmake_args.append("-DPRECISION_TYPE=mixed_precision")
diff --git a/var/spack/repos/builtin/packages/clapack/package.py b/var/spack/repos/builtin/packages/clapack/package.py
index 84f5500161..2f774f8d94 100644
--- a/var/spack/repos/builtin/packages/clapack/package.py
+++ b/var/spack/repos/builtin/packages/clapack/package.py
@@ -30,7 +30,7 @@ class Clapack(MakefilePackage):
def edit(self, spec, prefix):
copy("make.inc.example", "make.inc")
- if "+external-blas" in spec:
+ if spec.satisfies("+external-blas"):
make_inc = FileFilter("make.inc")
make_inc.filter(r"^BLASLIB.*", "BLASLIB = ../../libcblaswr.a -lcblas -latlas")
makefile = FileFilter("Makefile")
diff --git a/var/spack/repos/builtin/packages/clingo-bootstrap/package.py b/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
index 1b56df1590..67bab58d7a 100644
--- a/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
+++ b/var/spack/repos/builtin/packages/clingo-bootstrap/package.py
@@ -136,7 +136,7 @@ class ClingoBootstrap(Clingo):
cmake.add_default_envmod(use_mods)
def setup_build_environment(self, env):
- if "%apple-clang" in self.spec:
+ if self.spec.satisfies("%apple-clang"):
env.append_flags("CFLAGS", "-mmacosx-version-min=10.13")
env.append_flags("CXXFLAGS", "-mmacosx-version-min=10.13")
env.append_flags("LDFLAGS", "-mmacosx-version-min=10.13")
diff --git a/var/spack/repos/builtin/packages/clingo/package.py b/var/spack/repos/builtin/packages/clingo/package.py
index 784533c012..10fdb23591 100644
--- a/var/spack/repos/builtin/packages/clingo/package.py
+++ b/var/spack/repos/builtin/packages/clingo/package.py
@@ -98,7 +98,7 @@ class Clingo(CMakePackage):
args = [self.define("CLINGO_BUILD_WITH_LUA", False)]
- if "+python" in self.spec:
+ if self.spec.satisfies("+python"):
suffix = python(
"-c", "import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))", output=str
).strip()
@@ -116,7 +116,7 @@ class Clingo(CMakePackage):
# Use LTO also for non-Intel compilers please. This can be removed when they
# bump cmake_minimum_required to VERSION 3.9.
- if "+ipo" in self.spec:
+ if self.spec.satisfies("+ipo"):
args.append(self.define("CMAKE_POLICY_DEFAULT_CMP0069", "NEW"))
return args
diff --git a/var/spack/repos/builtin/packages/cln/package.py b/var/spack/repos/builtin/packages/cln/package.py
index f5a61e1148..404742e9dc 100644
--- a/var/spack/repos/builtin/packages/cln/package.py
+++ b/var/spack/repos/builtin/packages/cln/package.py
@@ -76,7 +76,7 @@ class Cln(AutotoolsPackage):
configure_args = []
- if "+gmp" in spec:
+ if spec.satisfies("+gmp"):
configure_args.append("--with-gmp={0}".format(spec["gmp"].prefix))
else:
configure_args.append("--without-gmp")
diff --git a/var/spack/repos/builtin/packages/cloverleaf-ref/package.py b/var/spack/repos/builtin/packages/cloverleaf-ref/package.py
index a2b7ce5868..025a6b5d0f 100644
--- a/var/spack/repos/builtin/packages/cloverleaf-ref/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf-ref/package.py
@@ -45,9 +45,9 @@ class CloverleafRef(MakefilePackage):
targets.append("MPI_COMPILER={0}".format(self.spec["mpi"].mpifc))
targets.append("C_MPI_COMPILER={0}".format(self.spec["mpi"].mpicc))
- if "+debug" in self.spec:
+ if self.spec.satisfies("+debug"):
targets.append("DEBUG=1")
- if "+ieee" in self.spec:
+ if self.spec.satisfies("+ieee"):
targets.append("IEEE=1")
# Work around for bug in Makefiles for versions 1.3 and 1.1 (mis-defined as -openmp)
diff --git a/var/spack/repos/builtin/packages/cloverleaf/package.py b/var/spack/repos/builtin/packages/cloverleaf/package.py
index 2fa6a9a2c7..a561b1039e 100644
--- a/var/spack/repos/builtin/packages/cloverleaf/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf/package.py
@@ -58,15 +58,15 @@ class Cloverleaf(MakefilePackage):
def type_of_build(self):
build = "ref"
- if "build=cuda" in self.spec:
+ if self.spec.satisfies("build=cuda"):
build = "CUDA"
- elif "build=mpi_only" in self.spec:
+ elif self.spec.satisfies("build=mpi_only"):
build = "MPI"
- elif "build=openacc_cray" in self.spec:
+ elif self.spec.satisfies("build=openacc_cray"):
build = "OpenACC_CRAY"
- elif "build=openmp_only" in self.spec:
+ elif self.spec.satisfies("build=openmp_only"):
build = "OpenMP"
- elif "build=serial" in self.spec:
+ elif self.spec.satisfies("build=serial"):
build = "Serial"
return build
@@ -75,42 +75,42 @@ class Cloverleaf(MakefilePackage):
def build_targets(self):
targets = ["--directory=CloverLeaf_{0}".format(self.type_of_build)]
- if "mpi" in self.spec:
+ if self.spec.satisfies("^mpi"):
targets.append("MPI_COMPILER={0}".format(self.spec["mpi"].mpifc))
targets.append("C_MPI_COMPILER={0}".format(self.spec["mpi"].mpicc))
else:
targets.append("MPI_COMPILER=f90")
targets.append("C_MPI_COMPILER=cc")
- if "%gcc" in self.spec:
+ if self.spec.satisfies("%gcc"):
targets.append("COMPILER=GNU")
targets.append("FLAGS_GNU=")
targets.append("CFLAGS_GNU=")
- elif "%cce" in self.spec:
+ elif self.spec.satisfies("%cce"):
targets.append("COMPILER=CRAY")
targets.append("FLAGS_CRAY=")
targets.append("CFLAGS_CRAY=")
- elif "%intel" in self.spec:
+ elif self.spec.satisfies("%intel"):
targets.append("COMPILER=INTEL")
targets.append("FLAGS_INTEL=")
targets.append("CFLAGS_INTEL=")
- elif "%aocc" in self.spec:
+ elif self.spec.satisfies("%aocc"):
targets.append("COMPILER=AOCC")
- elif "%pgi" in self.spec:
+ elif self.spec.satisfies("%pgi"):
targets.append("COMPILER=PGI")
targets.append("FLAGS_PGI=")
targets.append("CFLAGS_PGI=")
- elif "%xl" in self.spec:
+ elif self.spec.satisfies("%xl"):
targets.append("COMPILER=XLF")
targets.append("FLAGS_XLF=")
targets.append("CFLAGS_XLF=")
# Explicit mention of else clause is not working as expected
# So, not mentioning them
- if "+debug" in self.spec:
+ if self.spec.satisfies("+debug"):
targets.append("DEBUG=1")
- if "+ieee" in self.spec:
+ if self.spec.satisfies("+ieee"):
targets.append("IEEE=1")
return targets
diff --git a/var/spack/repos/builtin/packages/cloverleaf3d/package.py b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
index 9b7ba8a2c7..8e8f8de0fd 100644
--- a/var/spack/repos/builtin/packages/cloverleaf3d/package.py
+++ b/var/spack/repos/builtin/packages/cloverleaf3d/package.py
@@ -39,9 +39,9 @@ class Cloverleaf3d(MakefilePackage):
def type_of_build(self):
build = "ref"
- if "+opencl" in self.spec:
+ if self.spec.satisfies("+opencl"):
build = "OpenCL"
- elif "+openacc" in self.spec:
+ elif self.spec.satisfies("+openacc"):
build = "OpenACC"
return build
@@ -54,33 +54,33 @@ class Cloverleaf3d(MakefilePackage):
"--directory=CloverLeaf3D_{0}".format(self.type_of_build),
]
- if "%gcc" in self.spec:
+ if self.spec.satisfies("%gcc"):
targets.append("COMPILER=GNU")
targets.append("FLAGS_GNU=-O3 -funroll-loops")
targets.append("CFLAGS_GNU=-O3 -funroll-loops")
targets.append("OMP_GNU=-fopenmp")
- elif "%cce" in self.spec:
+ elif self.spec.satisfies("%cce"):
targets.append("COMPILER=CRAY")
targets.append("FLAGS_CRAY=")
targets.append("CFLAGS_CRAY=")
- elif "%intel" in self.spec:
+ elif self.spec.satisfies("%intel"):
targets.append("COMPILER=INTEL")
targets.append("FLAGS_INTEL=")
targets.append("CFLAGS_INTEL=")
- elif "%pgi" in self.spec:
+ elif self.spec.satisfies("%pgi"):
targets.append("COMPILER=PGI")
targets.append("FLAGS_PGI=")
targets.append("CFLAGS_PGI=")
- elif "%xl" in self.spec:
+ elif self.spec.satisfies("%xl"):
targets.append("COMPILER=XLF")
targets.append("FLAGS_XLF=")
targets.append("CFLAGS_XLF=")
- elif "%arm" in self.spec:
+ elif self.spec.satisfies("%arm"):
targets.append("COMPILER=ARM")
targets.append("FLAGS_ARM=-O3 -funroll-loops")
targets.append("CFLAGS_ARM=-O3 -funroll-loops")
targets.append("OMP_ARM=-fopenmp")
- elif "%nvhpc" in self.spec:
+ elif self.spec.satisfies("%nvhpc"):
targets.append("COMPILER=NVHPC")
targets.append("FLAGS_NVHPC=-O3 -fast")
targets.append("CFLAGS_NVHPC=-O3 -fast")
diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py
index bdc249af15..7d8d32bbc5 100644
--- a/var/spack/repos/builtin/packages/cmake/package.py
+++ b/var/spack/repos/builtin/packages/cmake/package.py
@@ -297,7 +297,7 @@ class Cmake(Package):
if jobs is not None:
args.append("--parallel={0}".format(jobs))
- if "+ownlibs" in spec:
+ if spec.satisfies("+ownlibs"):
# Build and link to the CMake-provided third-party libraries
args.append("--no-system-libs")
else:
@@ -312,7 +312,7 @@ class Cmake(Package):
args.append("--system-curl")
args.append("--no-qt-gui")
- if "+doc" in spec:
+ if spec.satisfies("+doc"):
args.append("--sphinx-html")
args.append("--sphinx-man")
diff --git a/var/spack/repos/builtin/packages/cmdstan/package.py b/var/spack/repos/builtin/packages/cmdstan/package.py
index db56241565..23ab6b990d 100644
--- a/var/spack/repos/builtin/packages/cmdstan/package.py
+++ b/var/spack/repos/builtin/packages/cmdstan/package.py
@@ -37,7 +37,7 @@ class Cmdstan(MakefilePackage):
else:
cxx_type = spec.compiler.name
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
cxx = spec["mpi"].mpicxx
else:
cxx = spack_cxx
@@ -53,13 +53,13 @@ class Cmdstan(MakefilePackage):
"TBB_CXX_TYPE={0}\n".format(cxx_type),
]
- if "+threads" in spec:
+ if spec.satisfies("+threads"):
make_options.append("STAN_THREADS=true\n")
- if "+opencl" in spec:
+ if spec.satisfies("+opencl"):
make_options.append("STAN_OPENCL=true\n")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
make_options.append("STAN_MPI=true\n")
filepath = join_path(self.stage.source_path, "make", "local")
diff --git a/var/spack/repos/builtin/packages/cntk/package.py b/var/spack/repos/builtin/packages/cntk/package.py
index 8d243e7d42..0af3911b28 100644
--- a/var/spack/repos/builtin/packages/cntk/package.py
+++ b/var/spack/repos/builtin/packages/cntk/package.py
@@ -82,29 +82,29 @@ class Cntk(Package):
args.append("--with-boost=" + spec["boost"].prefix)
args.append("--with-protobuf=" + spec["protobuf"].prefix)
- if "+debug" in spec:
+ if spec.satisfies("+debug"):
args.append("--with-buildtype=debug")
else:
args.append("--with-buildtype=release")
- if "+1bitsgd" in spec:
+ if spec.satisfies("+1bitsgd"):
args.append("--1bitsgd=yes")
args.append("--with-1bitsgd={0}/include".format(spec["cntk1bitsgd"].prefix))
- if "+asgd" in spec:
+ if spec.satisfies("+asgd"):
args.append("--asgd=yes")
args.append("--with-multiverso={0}".format(spec["multiverso"].prefix))
else:
args.append("--asgd=no")
- if "+opencv" in spec:
+ if spec.satisfies("+opencv"):
args.append("--with-opencv=" + spec["opencv"].prefix)
- if "+kaldi" in spec:
+ if spec.satisfies("+kaldi"):
args.append("--with-kaldi=" + spec["kaldi"].prefix)
args.append("--with-openfst=" + spec["openfst"].prefix)
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
args.append("--cuda=yes")
args.append("--with-cuda={0}".format(spec["cuda"].prefix))
args.append("--with-cub={0}".format(spec["cub"].prefix.include))
diff --git a/var/spack/repos/builtin/packages/codes/package.py b/var/spack/repos/builtin/packages/codes/package.py
index 1614166e28..455ad130be 100644
--- a/var/spack/repos/builtin/packages/codes/package.py
+++ b/var/spack/repos/builtin/packages/codes/package.py
@@ -45,7 +45,7 @@ class Codes(AutotoolsPackage):
"PKG_CONFIG_PATH=%s/pkgconfig" % spec["ross"].prefix.lib,
]
- if "+dumpi" in spec:
+ if spec.satisfies("+dumpi"):
config_args.extend(["--with-dumpi=%s" % spec["sst-dumpi"].prefix])
return config_args
diff --git a/var/spack/repos/builtin/packages/coevp/package.py b/var/spack/repos/builtin/packages/coevp/package.py
index b0a695e14f..c44e42e6ae 100644
--- a/var/spack/repos/builtin/packages/coevp/package.py
+++ b/var/spack/repos/builtin/packages/coevp/package.py
@@ -42,11 +42,11 @@ class Coevp(MakefilePackage):
@property
def build_targets(self):
targets = []
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
targets.append("COEVP_MPI=yes")
else:
targets.append("COEVP_MPI=no")
- if "+flann" in self.spec:
+ if self.spec.satisfies("+flann"):
targets.append("FLANN=yes")
targets.append("FLANN_TARGET=")
targets.append(
@@ -55,7 +55,7 @@ class Coevp(MakefilePackage):
else:
targets.append("FLANN=no")
targets.append("REDIS=no")
- if "+silo" in self.spec:
+ if self.spec.satisfies("+silo"):
targets.append("SILO=yes")
targets.append("SILO_TARGET=")
targets.append("SILO_LOC={0}".format(self.spec["silo"].prefix))
diff --git a/var/spack/repos/builtin/packages/cohmm/package.py b/var/spack/repos/builtin/packages/cohmm/package.py
index 49bec4f075..6cf71a9eb3 100644
--- a/var/spack/repos/builtin/packages/cohmm/package.py
+++ b/var/spack/repos/builtin/packages/cohmm/package.py
@@ -28,9 +28,9 @@ class Cohmm(MakefilePackage):
depends_on("gnuplot", when="+gnuplot")
def edit(self, spec, prefix):
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
filter_file("DO_OPENMP = O.*", "DO_OPENMP = ON", "Makefile")
- if "+gnuplot" in spec:
+ if spec.satisfies("+gnuplot"):
filter_file("DO_GNUPLOT = O.*", "DO_GNUPLOT = ON", "Makefile")
def install(self, spec, prefix):
diff --git a/var/spack/repos/builtin/packages/comd/package.py b/var/spack/repos/builtin/packages/comd/package.py
index af109ac1f4..5d2e050a13 100644
--- a/var/spack/repos/builtin/packages/comd/package.py
+++ b/var/spack/repos/builtin/packages/comd/package.py
@@ -50,11 +50,11 @@ class Comd(MakefilePackage):
comd_variant = "CoMD"
cc = spack_cc
- if "+openmp" in self.spec:
+ if self.spec.satisfies("+openmp"):
targets.append("--directory=src-openmp")
comd_variant += "-openmp"
cflags += " -fopenmp "
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
comd_variant += "-mpi"
targets.append("CC = {0}".format(self.spec["mpi"].mpicc))
else:
@@ -62,17 +62,17 @@ class Comd(MakefilePackage):
else:
targets.append("--directory=src-mpi")
- if "~mpi" in self.spec:
+ if self.spec.satisfies("~mpi"):
comd_variant += "-serial"
targets.append("CC = {0}".format(cc))
else:
comd_variant += "-mpi"
targets.append("CC = {0}".format(self.spec["mpi"].mpicc))
- if "+mpi" in self.spec:
+ if self.spec.satisfies("+mpi"):
cflags += "-DDO_MPI"
targets.append("INCLUDES = {0}".format(self.spec["mpi"].prefix.include))
- if "+precision" in self.spec:
+ if self.spec.satisfies("+precision"):
cflags += " -DDOUBLE "
else:
cflags += " -DSINGLE "
diff --git a/var/spack/repos/builtin/packages/compadre/package.py b/var/spack/repos/builtin/packages/compadre/package.py
index 801f0d8b86..19c99e217b 100644
--- a/var/spack/repos/builtin/packages/compadre/package.py
+++ b/var/spack/repos/builtin/packages/compadre/package.py
@@ -59,14 +59,14 @@ class Compadre(CMakePackage):
]
)
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
options.append("-DCompadre_USE_MPI:BOOL=ON")
- if "~tests" in spec:
+ if spec.satisfies("~tests"):
options.append("-DCompadre_EXAMPLES:BOOL=OFF")
options.append("-DCompadre_TESTS:BOOL=OFF")
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
options.append("-DBUILD_SHARED_LIBS:BOOL=ON")
else:
options.append("-DBUILD_SHARED_LIBS:BOOL=OFF")
diff --git a/var/spack/repos/builtin/packages/conduit/package.py b/var/spack/repos/builtin/packages/conduit/package.py
index ebf372fefa..f2d88358ea 100644
--- a/var/spack/repos/builtin/packages/conduit/package.py
+++ b/var/spack/repos/builtin/packages/conduit/package.py
@@ -313,7 +313,7 @@ class Conduit(CMakePackage):
#######################
c_compiler = env["SPACK_CC"]
cpp_compiler = env["SPACK_CXX"]
- if "+fortran" in spec:
+ if spec.satisfies("+fortran"):
f_compiler = env["SPACK_FC"]
else:
f_compiler = None
@@ -364,13 +364,13 @@ class Conduit(CMakePackage):
cfg.write(cmake_cache_entry("CMAKE_CXX_COMPILER", cpp_compiler))
cfg.write("# fortran compiler used by spack\n")
- if "+fortran" in spec:
+ if spec.satisfies("+fortran"):
cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "ON"))
cfg.write(cmake_cache_entry("CMAKE_Fortran_COMPILER", f_compiler))
else:
cfg.write(cmake_cache_entry("ENABLE_FORTRAN", "OFF"))
- 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"))
@@ -405,12 +405,12 @@ class Conduit(CMakePackage):
#######################
# Examples/Utilities
#######################
- if "+examples" in spec:
+ if spec.satisfies("+examples"):
cfg.write(cmake_cache_entry("ENABLE_EXAMPLES", "ON"))
else:
cfg.write(cmake_cache_entry("ENABLE_EXAMPLES", "OFF"))
- if "+utilities" in spec:
+ if spec.satisfies("+utilities"):
cfg.write(cmake_cache_entry("ENABLE_UTILS", "ON"))
else:
cfg.write(cmake_cache_entry("ENABLE_UTILS", "OFF"))
@@ -418,7 +418,7 @@ class Conduit(CMakePackage):
#######################
# Unit Tests
#######################
- if "+test" in spec:
+ if spec.satisfies("+test"):
cfg.write(cmake_cache_entry("ENABLE_TESTS", "ON"))
else:
cfg.write(cmake_cache_entry("ENABLE_TESTS", "OFF"))
@@ -434,7 +434,7 @@ class Conduit(CMakePackage):
flags = "${BLT_EXE_LINKER_FLAGS} -lstdc++ " + rpaths
cfg.write(cmake_cache_entry("BLT_EXE_LINKER_FLAGS", flags))
- if "+shared" in spec:
+ if spec.satisfies("+shared"):
flags = "${CMAKE_SHARED_LINKER_FLAGS} " + rpaths
cfg.write(cmake_cache_entry("CMAKE_SHARED_LINKER_FLAGS", flags))
@@ -444,7 +444,7 @@ class Conduit(CMakePackage):
cfg.write("# Python Support\n")
- if "+python" in spec:
+ if spec.satisfies("+python"):
cfg.write("# Enable python module builds\n")
cfg.write(cmake_cache_entry("ENABLE_PYTHON", "ON"))
cfg.write("# python from spack \n")
@@ -458,14 +458,14 @@ class Conduit(CMakePackage):
else:
cfg.write(cmake_cache_entry("ENABLE_PYTHON", "OFF"))
- if "+doc" in spec:
- if "+python" in spec:
+ if spec.satisfies("+doc"):
+ if spec.satisfies("+python"):
cfg.write(cmake_cache_entry("ENABLE_DOCS", "ON"))
cfg.write("# sphinx from spack \n")
sphinx_build_exe = join_path(spec["py-sphinx"].prefix.bin, "sphinx-build")
cfg.write(cmake_cache_entry("SPHINX_EXECUTABLE", sphinx_build_exe))
- if "+doxygen" in spec:
+ if spec.satisfies("+doxygen"):
cfg.write("# doxygen from uberenv\n")
doxygen_exe = spec["doxygen"].command.path
cfg.write(cmake_cache_entry("DOXYGEN_EXECUTABLE", doxygen_exe))
@@ -478,7 +478,7 @@ class Conduit(CMakePackage):
cfg.write("# MPI Support\n")
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
mpicc_path = spec["mpi"].mpicc
mpicxx_path = spec["mpi"].mpicxx
mpifc_path = spec["mpi"].mpifc if "+fortran" in spec else None
@@ -493,11 +493,11 @@ class Conduit(CMakePackage):
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"))
- if "+fortran" in spec:
+ if spec.satisfies("+fortran"):
cfg.write(cmake_cache_entry("MPI_Fortran_COMPILER", mpifc_path))
mpiexe_bin = join_path(spec["mpi"].prefix.bin, "mpiexec")
@@ -515,7 +515,7 @@ class Conduit(CMakePackage):
# ZFP
#######################
cfg.write("# zfp from spack \n")
- if "+zfp" in spec:
+ if spec.satisfies("+zfp"):
cfg.write(cmake_cache_entry("ZFP_DIR", spec["zfp"].prefix))
else:
cfg.write("# zfp not built by spack \n")
@@ -524,7 +524,7 @@ class Conduit(CMakePackage):
# Caliper
#######################
cfg.write("# caliper from spack \n")
- if "+caliper" in spec:
+ if spec.satisfies("+caliper"):
cfg.write(cmake_cache_entry("CALIPER_DIR", spec["caliper"].prefix))
cfg.write(cmake_cache_entry("ADIAK_DIR", spec["adiak"].prefix))
else:
@@ -542,9 +542,9 @@ class Conduit(CMakePackage):
cfg.write("# hdf5 from spack \n")
- if "+hdf5" in spec:
+ if spec.satisfies("+hdf5"):
cfg.write(cmake_cache_entry("HDF5_DIR", spec["hdf5"].prefix))
- if "zlib-api" in spec:
+ if spec.satisfies("^zlib-api"):
# HDF5 depends on zlib
cfg.write(cmake_cache_entry("ZLIB_DIR", spec["zlib-api"].prefix))
else:
@@ -556,7 +556,7 @@ class Conduit(CMakePackage):
cfg.write("# h5z-zfp from spack \n")
- if "+hdf5+zfp" in spec:
+ if spec.satisfies("+hdf5+zfp"):
cfg.write(cmake_cache_entry("H5ZZFP_DIR", spec["h5z-zfp"].prefix))
else:
cfg.write("# h5z-zfp not built by spack \n")
@@ -567,7 +567,7 @@ class Conduit(CMakePackage):
cfg.write("# silo from spack \n")
- if "+silo" in spec:
+ if spec.satisfies("+silo"):
cfg.write(cmake_cache_entry("SILO_DIR", spec["silo"].prefix))
else:
cfg.write("# silo not built by spack \n")
@@ -578,7 +578,7 @@ class Conduit(CMakePackage):
cfg.write("# ADIOS from spack \n")
- if "+adios" in spec:
+ if spec.satisfies("+adios"):
cfg.write(cmake_cache_entry("ADIOS_DIR", spec["adios"].prefix))
else:
cfg.write("# adios not built by spack \n")
@@ -589,7 +589,7 @@ class Conduit(CMakePackage):
cfg.write("# parmetis from spack \n")
- if "+parmetis" in spec:
+ if spec.satisfies("+parmetis"):
cfg.write(cmake_cache_entry("METIS_DIR", spec["metis"].prefix))
cfg.write(cmake_cache_entry("PARMETIS_DIR", spec["parmetis"].prefix))
else:
diff --git a/var/spack/repos/builtin/packages/conquest/package.py b/var/spack/repos/builtin/packages/conquest/package.py
index 56ed26c11b..b3f1816a24 100644
--- a/var/spack/repos/builtin/packages/conquest/package.py
+++ b/var/spack/repos/builtin/packages/conquest/package.py
@@ -66,7 +66,7 @@ class Conquest(MakefilePackage):
fflags = "-O3 -fallow-argument-mismatch"
ldflags = ""
- if "+openmp" in self.spec:
+ if self.spec.satisfies("+openmp"):
fflags += " " + self.compiler.openmp_flag
ldflags += " " + self.compiler.openmp_flag
@@ -94,7 +94,7 @@ class Conquest(MakefilePackage):
defs_file.filter(".*FFT_LIB=.*", f"FFT_LIB={fftw_ld}")
defs_file.filter(".*XC_LIB=.*", f"XC_LIB={libxc_ld} -lxcf90 -lxc")
- if "+openmp" in self.spec:
+ if self.spec.satisfies("+openmp"):
defs_file.filter("OMP_DUMMY = DUMMY", "OMP_DUMMY = ")
if self.spec.variants["mult_kern"].value != "default":
diff --git a/var/spack/repos/builtin/packages/converge/package.py b/var/spack/repos/builtin/packages/converge/package.py
index 62834b7ec4..f056d23437 100644
--- a/var/spack/repos/builtin/packages/converge/package.py
+++ b/var/spack/repos/builtin/packages/converge/package.py
@@ -146,29 +146,29 @@ class Converge(Package):
# The CONVERGE tarball comes with binaries for several MPI libraries.
# Only install the binary that matches the MPI we are building with.
with working_dir("l_x86_64/bin"):
- if "~mpi" in spec:
+ if spec.satisfies("~mpi"):
converge = glob.glob("converge-*-serial*")
post_convert = glob.glob("post_convert_serial*")
- elif "hp-mpi" in spec:
+ elif spec.satisfies("^hp-mpi"):
converge = glob.glob("converge-*-hpmpi*")
# No HP-MPI version of post_convert
post_convert = glob.glob("post_convert_serial*")
- elif "intel-mpi" in spec or "intel-parallel-studio+mpi" in spec:
+ elif spec.satisfies("intel-mpi") or spec.satisfies("intel-parallel-studio+mpi"):
converge = glob.glob("converge-*-intel*")
# No Intel MPI version of post_convert
post_convert = glob.glob("post_convert_serial*")
- elif "mpich" in spec:
+ elif spec.satisfies("^mpich"):
converge = glob.glob("converge-*-mpich*")
post_convert = glob.glob("post_convert_mpich*")
- elif "mvapich2" in spec:
+ elif spec.satisfies("^mvapich2"):
converge = glob.glob("converge-*-mvapich*")
# MVAPICH2 hasn't been supported since CONVERGE
# came with a single serial post_convert
post_convert = glob.glob("post_convert")
- elif "openmpi" in spec:
+ elif spec.satisfies("^openmpi"):
converge = glob.glob("converge-*-o*mpi*")
post_convert = glob.glob("post_convert_o*mpi*")
- elif "platform-mpi" in spec:
+ elif spec.satisfies("^platform-mpi"):
converge = glob.glob("converge-*-pmpi*")
post_convert = glob.glob("post_convert_pmpi*")
else:
diff --git a/var/spack/repos/builtin/packages/coreutils/package.py b/var/spack/repos/builtin/packages/coreutils/package.py
index aaf868e1c3..e1b5f1c0d2 100644
--- a/var/spack/repos/builtin/packages/coreutils/package.py
+++ b/var/spack/repos/builtin/packages/coreutils/package.py
@@ -60,7 +60,7 @@ class Coreutils(AutotoolsPackage, GNUMirrorPackage):
spec = self.spec
configure_args = []
if spec.satisfies("platform=darwin"):
- if "+gprefix" in self.spec:
+ if self.spec.satisfies("+gprefix"):
configure_args.append("--program-prefix=g")
configure_args.append("--without-gmp")
configure_args.append("gl_cv_func_ftello_works=yes")
diff --git a/var/spack/repos/builtin/packages/cosma/package.py b/var/spack/repos/builtin/packages/cosma/package.py
index 3bc12ac1b8..6e62f716cf 100644
--- a/var/spack/repos/builtin/packages/cosma/package.py
+++ b/var/spack/repos/builtin/packages/cosma/package.py
@@ -83,7 +83,7 @@ class Cosma(CMakePackage):
patch("fj-ssl2.patch", when="^fujitsu-ssl2")
def setup_build_environment(self, env):
- if "+cuda" in self.spec:
+ if self.spec.satisfies("+cuda"):
env.set("CUDA_PATH", self.spec["cuda"].prefix)
def cosma_blas_cmake_arg(self):
@@ -112,11 +112,11 @@ class Cosma(CMakePackage):
def cosma_scalapack_cmake_arg(self):
spec = self.spec
- if "~scalapack" in spec:
+ if spec.satisfies("~scalapack"):
return "OFF"
- elif "^intel-mkl" in spec or "^intel-oneapi-mkl" in spec:
+ elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"):
return "MKL"
- elif "^cray-libsci" in spec:
+ elif spec.satisfies("^cray-libsci"):
return "CRAY_LIBSCI"
return "CUSTOM"
diff --git a/var/spack/repos/builtin/packages/cosmomc/package.py b/var/spack/repos/builtin/packages/cosmomc/package.py
index 6bb14da1c4..93749619af 100644
--- a/var/spack/repos/builtin/packages/cosmomc/package.py
+++ b/var/spack/repos/builtin/packages/cosmomc/package.py
@@ -66,7 +66,7 @@ class Cosmomc(Package):
os.remove(clikdir)
except OSError:
pass
- if "+planck" in spec:
+ if spec.satisfies("+planck"):
os.symlink(join_path(os.environ["CLIK_DATA"], "plc_2.0"), clikdir)
else:
os.environ.pop("CLIK_DATA", "")
@@ -93,7 +93,7 @@ class Cosmomc(Package):
raise InstallError("Only GCC and Intel compilers are supported")
# Configure MPI
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
wantmpi = "BUILD=MPI"
mpif90 = "MPIF90C=%s" % spec["mpi"].mpifc
else:
@@ -138,7 +138,7 @@ class Cosmomc(Package):
"test_planck.ini",
"tests",
]
- if "+python" in spec:
+ if spec.satisfies("+python"):
entries += ["python"]
for entry in entries:
if os.path.isfile(entry):
@@ -171,7 +171,7 @@ class Cosmomc(Package):
exe = spec["cosmomc"].command.path
args = []
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
# Add mpirun prefix
args = ["-np", "1", exe]
exe = join_path(spec["mpi"].prefix.bin, "mpiexec")
@@ -181,6 +181,6 @@ class Cosmomc(Package):
os.symlink(join_path(prefix.share, "cosmomc", entry), entry)
inifile = join_path(prefix.share, "cosmomc", "test.ini")
cosmomc(*(args + [inifile]))
- if "+planck" in spec:
+ if spec.satisfies("+planck"):
inifile = join_path(prefix.share, "cosmomc", "test_planck.ini")
cosmomc(*(args + [inifile]))
diff --git a/var/spack/repos/builtin/packages/cosp2/package.py b/var/spack/repos/builtin/packages/cosp2/package.py
index d66a22f09c..a5a78a27b0 100644
--- a/var/spack/repos/builtin/packages/cosp2/package.py
+++ b/var/spack/repos/builtin/packages/cosp2/package.py
@@ -33,14 +33,14 @@ class Cosp2(MakefilePackage):
def edit(self, spec, prefix):
cc = spack_cc
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
cc = spec["mpi"].mpicc
with working_dir(self.build_directory):
makefile = FileFilter("Makefile.vanilla")
makefile.filter(r"^CC\s*=.*", "CC = {0}".format(cc))
- if "+double" in spec:
+ if spec.satisfies("+double"):
filter_file("DOUBLE_PRECISION = O.*", "DOUBLE_PRECISION = OFF", "Makefile.vanilla")
copy("Makefile.vanilla", "Makefile")
diff --git a/var/spack/repos/builtin/packages/costa/package.py b/var/spack/repos/builtin/packages/costa/package.py
index 3070e78a42..427c846801 100644
--- a/var/spack/repos/builtin/packages/costa/package.py
+++ b/var/spack/repos/builtin/packages/costa/package.py
@@ -57,11 +57,11 @@ class Costa(CMakePackage):
def costa_scalapack_cmake_arg(self):
spec = self.spec
- if "~scalapack" in spec:
+ if spec.satisfies("~scalapack"):
return "OFF"
- elif "^intel-mkl" in spec or "^intel-oneapi-mkl" in spec:
+ elif spec.satisfies("^intel-mkl") or spec.satisfies("^intel-oneapi-mkl"):
return "MKL"
- elif "^cray-libsci" in spec:
+ elif spec.satisfies("^cray-libsci"):
return "CRAY_LIBSCI"
return "CUSTOM"
diff --git a/var/spack/repos/builtin/packages/cp2k/package.py b/var/spack/repos/builtin/packages/cp2k/package.py
index 014b224312..8c7dae2b7c 100644
--- a/var/spack/repos/builtin/packages/cp2k/package.py
+++ b/var/spack/repos/builtin/packages/cp2k/package.py
@@ -409,10 +409,10 @@ class MakefileBuilder(makefile.MakefileBuilder):
# CP2K requires MPI 3 starting at version 2023.1
# and __MPI_VERSION is not supported anymore.
- if "@:2022.2" in spec:
- if "^mpi@3:" in spec:
+ if spec.satisfies("@:2022.2"):
+ if spec.satisfies("^mpi@3:"):
cppflags.append("-D__MPI_VERSION=3")
- elif "^mpi@2:" in spec:
+ elif spec.satisfies("^mpi@2:"):
cppflags.append("-D__MPI_VERSION=2")
cflags = optimization_flags[spec.compiler.name][:]
@@ -430,23 +430,23 @@ class MakefileBuilder(makefile.MakefileBuilder):
# C99-style for-loops with inline definition of iterating variable.
cflags.append(pkg.compiler.c99_flag)
- if "%intel" in spec:
+ if spec.satisfies("%intel"):
cflags.append("-fp-model precise")
cxxflags.append("-fp-model precise")
fcflags += ["-fp-model precise", "-heap-arrays 64", "-g", "-traceback"]
- elif "%gcc" in spec:
+ elif spec.satisfies("%gcc"):
fcflags += [
"-ffree-form",
"-ffree-line-length-none",
"-ggdb", # make sure we get proper Fortran backtraces
]
- elif "%aocc" in spec:
+ elif spec.satisfies("%aocc"):
fcflags += ["-ffree-form", "-Mbackslash"]
- elif "%pgi" in spec or "%nvhpc" in spec:
+ elif spec.satisfies("%pgi") or spec.satisfies("%nvhpc"):
fcflags += ["-Mfreeform", "-Mextend"]
- elif "%cce" in spec:
+ elif spec.satisfies("%cce"):
fcflags += ["-emf", "-ffree", "-hflex_mp=strict"]
- elif "%xl" in spec:
+ elif spec.satisfies("%xl"):
fcflags += ["-qpreprocess", "-qstrict", "-q64"]
ldflags += ["-Wl,--allow-multiple-definition"]
@@ -457,31 +457,31 @@ class MakefileBuilder(makefile.MakefileBuilder):
if spec.satisfies("@7.1%gcc@13:"):
fcflags.append("-fallow-argument-mismatch")
- if "+openmp" in spec:
+ if spec.satisfies("+openmp"):
cflags.append(pkg.compiler.openmp_flag)
cxxflags.append(pkg.compiler.openmp_flag)
fcflags.append(pkg.compiler.openmp_flag)
ldflags.append(pkg.compiler.openmp_flag)
nvflags.append('-Xcompiler="{0}"'.format(pkg.compiler.openmp_flag))
- elif "%cce" in spec: # Cray enables OpenMP by default
+ elif spec.satisfies("%cce"): # Cray enables OpenMP by default
cflags += ["-hnoomp"]
cxxflags += ["-hnoomp"]
fcflags += ["-hnoomp"]
ldflags += ["-hnoomp"]
- if "@7:" in spec: # recent versions of CP2K use C++14 CUDA code
+ if spec.satisfies("@7:"): # recent versions of CP2K use C++14 CUDA code
cxxflags.append(pkg.compiler.cxx14_flag)
nvflags.append(pkg.compiler.cxx14_flag)
ldflags.append(fftw.libs.search_flags)
- if "superlu-dist@4.3" in spec:
+ if spec.satisfies("^superlu-dist@4.3"):
ldflags.insert(0, "-Wl,--allow-multiple-definition")
- if "+libint" in spec:
+ if spec.satisfies("+libint"):
cppflags += ["-D__LIBINT"]
- if "@:6.9" in spec:
+ if spec.satisfies("@:6.9"):
cppflags += ["-D__LIBINT_MAX_AM=6", "-D__LIBDERIV_MAX_AM1=5"]
# libint-1.x.y has to be linked statically to work around
@@ -499,10 +499,10 @@ class MakefileBuilder(makefile.MakefileBuilder):
fcflags += pkgconf("--cflags", "libint2", output=str).split()
libs += pkgconf("--libs", "libint2", output=str).split()
- if "+libxc" in spec:
+ if spec.satisfies("+libxc"):
cppflags += ["-D__LIBXC"]
- if "@:6.9" in spec:
+ if spec.satisfies("@:6.9"):
libxc = spec["libxc:fortran,static"]
cppflags += [libxc.headers.cpp_flags]
ldflags.append(libxc.libs.search_flags)
@@ -514,7 +514,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
# requiring `-lxc` to be present in addition to `-lxcf03`
libs += pkgconf("--libs", "libxcf03", "libxc", output=str).split()
- if "+pexsi" in spec:
+ if spec.satisfies("+pexsi"):
cppflags.append("-D__LIBPEXSI")
fcflags.append("-I" + join_path(spec["pexsi"].prefix, "fortran"))
libs.extend(
@@ -530,7 +530,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
]
)
- if "+elpa" in spec:
+ if spec.satisfies("+elpa"):
elpa = spec["elpa"]
elpa_suffix = "_openmp" if "+openmp" in elpa else ""
elpa_incdir = elpa.headers.directories[0]
@@ -538,7 +538,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
fcflags += ["-I{0}".format(join_path(elpa_incdir, "modules"))]
# Currently AOCC support only static libraries of ELPA
- if "%aocc" in spec:
+ if spec.satisfies("%aocc"):
libs.append(
join_path(
elpa.prefix.lib, ("libelpa{elpa_suffix}.a".format(elpa_suffix=elpa_suffix))
@@ -578,19 +578,19 @@ class MakefileBuilder(makefile.MakefileBuilder):
fcflags += ["-I{0}".format(sirius.prefix.include.sirius)]
libs += list(sirius.libs)
- if "+plumed" in spec:
+ if spec.satisfies("+plumed"):
dflags.extend(["-D__PLUMED2"])
cppflags.extend(["-D__PLUMED2"])
libs.extend([join_path(spec["plumed"].prefix.lib, "libplumed.{0}".format(dso_suffix))])
- if "+libvori" in spec:
+ if spec.satisfies("+libvori"):
cppflags += ["-D__LIBVORI"]
libvori = spec["libvori"].libs
ldflags += [libvori.search_flags]
libs += libvori
libs += ["-lstdc++"]
- if "+spglib" in spec:
+ if spec.satisfies("+spglib"):
cppflags += ["-D__SPGLIB"]
spglib = spec["spglib"].libs
ldflags += [spglib.search_flags]
@@ -601,7 +601,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
fc = spack_fc if "~mpi" in spec else spec["mpi"].mpifc
# Intel
- if "%intel" in spec:
+ if spec.satisfies("%intel"):
cppflags.extend(["-D__INTEL", "-D__HAS_ISO_C_BINDING", "-D__USE_CP2K_TRACE"])
fcflags.extend(["-diag-disable 8290,8291,10010,10212,11060", "-free", "-fpp"])
@@ -619,14 +619,14 @@ class MakefileBuilder(makefile.MakefileBuilder):
elif spec["blas"].name == "accelerate":
cppflags += ["-D__ACCELERATE"]
- if "+cosma" in spec:
+ if spec.satisfies("+cosma"):
# add before ScaLAPACK to override the p?gemm symbols
cosma = spec["cosma"].libs
ldflags.append(cosma.search_flags)
libs.extend(cosma)
# MPI
- if "+mpi" in spec:
+ if spec.satisfies("+mpi"):
cppflags.extend(["-D__parallel", "-D__SCALAPACK"])
if spec["mpi"].name == "intel-oneapi-mpi":
@@ -655,10 +655,10 @@ class MakefileBuilder(makefile.MakefileBuilder):
libs.extend(mpi)
libs.extend(pkg.compiler.stdcxx_libs)
- if "+mpi_f08" in spec:
+ if spec.satisfies("+mpi_f08"):
cppflags.append("-D__MPI_F08")
- if "wannier90" in spec:
+ if spec.satisfies("^wannier90"):
cppflags.append("-D__WANNIER90")
wannier = join_path(spec["wannier90"].libs.directories[0], "libwannier.a")
libs.append(wannier)
@@ -710,7 +710,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
if cuda_arch == "35" and spec.satisfies("+cuda_arch_35_k20x"):
gpuver = "K20X"
- if "@2022: +rocm" in spec:
+ if spec.satisfies("@2022: +rocm"):
libs += [
"-L{}".format(spec["rocm"].libs.directories[0]),
"-L{}/stubs".format(spec["rocm"].libs.directories[0]),
@@ -726,7 +726,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
cppflags += ["-D__DBCSR_ACC"]
gpuver = GPU_MAP[spec.variants["amdgpu_target"].value[0]]
- if "smm=libsmm" in spec:
+ if spec.satisfies("smm=libsmm"):
lib_dir = join_path("lib", self.makefile_architecture, self.makefile_version)
mkdirp(lib_dir)
try:
@@ -744,7 +744,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
cppflags.extend(["-D__HAS_smm_dnn", "-D__HAS_smm_vec"])
libs.append("-lsmm")
- elif "smm=libxsmm" in spec:
+ elif spec.satisfies("smm=libxsmm"):
cppflags += ["-D__LIBXSMM"]
cppflags += pkgconf("--cflags-only-other", "libxsmmf", output=str).split()
fcflags += pkgconf("--cflags-only-I", "libxsmmf", output=str).split()
@@ -757,7 +757,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
nvflags.extend(cppflags)
with open(self.makefile, "w") as mkf:
- if "+plumed" in spec:
+ if spec.satisfies("+plumed"):
mkf.write(
"# include Plumed.inc as recommended by"
"PLUMED to include libraries and flags"
@@ -769,7 +769,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
"FC = {0}\n" "CC = {1}\n" "CXX = {2}\n" "LD = {3}\n".format(fc, cc, cxx, fc)
)
- if "%intel" in spec:
+ if spec.satisfies("%intel"):
intel_bin_dir = ancestor(pkg.compiler.cc)
# CPP is a commented command in Intel arch of CP2K
# This is the hack through which cp2k developers avoid doing :
@@ -783,7 +783,7 @@ class MakefileBuilder(makefile.MakefileBuilder):
mkf.write("CPP = # {0} -E\n".format(spack_cc))
mkf.write("AR = ar -qs\n") # r = qs is a GNU extension
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
mkf.write(
"{0} = {1}\n".format(
acc_compiler_var, join_path(spec["cuda"].prefix, "bin", "nvcc")
@@ -799,13 +799,13 @@ class MakefileBuilder(makefile.MakefileBuilder):
mkf.write(fflags("CPPFLAGS", cppflags))
mkf.write(fflags("CFLAGS", cflags))
mkf.write(fflags("CXXFLAGS", cxxflags))
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
mkf.write(fflags(acc_flags_var, nvflags))
mkf.write(fflags("FCFLAGS", fcflags))
mkf.write(fflags("LDFLAGS", ldflags))
mkf.write(fflags("LIBS", libs))
- if "%intel" in spec:
+ if spec.satisfies("%intel"):
mkf.write(fflags("LDFLAGS_C", ldflags + ["-nofor-main"]))
mkf.write("# CP2K-specific flags\n\n")
@@ -921,7 +921,7 @@ class CMakeBuilder(cmake.CMakeBuilder):
spec = self.spec
args = []
- if "+cuda" in spec:
+ if spec.satisfies("+cuda"):
if (len(spec.variants["cuda_arch"].value) > 1) or spec.satisfies("cuda_arch=none"):
raise InstallError("CP2K supports only one cuda_arch at a time.")
else:
@@ -931,7 +931,7 @@ class CMakeBuilder(cmake.CMakeBuilder):
self.define("CP2K_WITH_GPU", gpu_ver),
]
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
if len(spec.variants["amdgpu_target"].value) > 1:
raise InstallError("CP2K supports only one amdgpu_target at a time.")
else:
diff --git a/var/spack/repos/builtin/packages/cpio/package.py b/var/spack/repos/builtin/packages/cpio/package.py
index 5b743a8298..be381e52c5 100644
--- a/var/spack/repos/builtin/packages/cpio/package.py
+++ b/var/spack/repos/builtin/packages/cpio/package.py
@@ -42,10 +42,10 @@ class Cpio(AutotoolsPackage, GNUMirrorPackage):
spec = self.spec
if name == "cflags":
- if "%intel@:17" in spec:
+ if spec.satisfies("%intel@:17"):
flags.append("-no-gcc")
- elif "%clang" in spec or "%fj" in spec:
+ elif spec.satisfies("%clang") or spec.satisfies("%fj"):
flags.append("--rtlib=compiler-rt")
return (flags, None, None)
diff --git a/var/spack/repos/builtin/packages/cray-libsci/package.py b/var/spack/repos/builtin/packages/cray-libsci/package.py
index 438cad5b35..4d06317204 100644
--- a/var/spack/repos/builtin/packages/cray-libsci/package.py
+++ b/var/spack/repos/builtin/packages/cray-libsci/package.py
@@ -64,11 +64,11 @@ class CrayLibsci(Package):
compiler = self.spec.compiler.name
lib = []
- if "+openmp" in self.spec and "+mpi" in self.spec:
+ if self.spec.satisfies("+openmp") and self.spec.satisfies("+mpi"):
lib = ["libsci_{0}_mpi_mp", "libsci_{0}_mp"]
- elif "+openmp" in self.spec:
+ elif self.spec.satisfies("+openmp"):
lib = ["libsci_{0}_mp"]
- elif "+mpi" in self.spec:
+ elif self.spec.satisfies("+mpi"):
lib = ["libsci_{0}_mpi", "libsci_{0}"]
else:
lib = ["libsci_{0}"]
diff --git a/var/spack/repos/builtin/packages/cray-mpich/package.py b/var/spack/repos/builtin/packages/cray-mpich/package.py
index 4b422bf38e..3458caa225 100644
--- a/var/spack/repos/builtin/packages/cray-mpich/package.py
+++ b/var/spack/repos/builtin/packages/cray-mpich/package.py
@@ -65,7 +65,7 @@ class CrayMpich(Package):
return os.path.dirname(os.path.normpath(libdir))
def setup_run_environment(self, env):
- if "+wrappers" in self.spec:
+ if self.spec.satisfies("+wrappers"):
env.set("MPICC", join_path(self.prefix.bin, "mpicc"))
env.set("MPICXX", join_path(self.prefix.bin, "mpicxx"))
env.set("MPIF77", join_path(self.prefix.bin, "mpif77"))
@@ -86,7 +86,7 @@ class CrayMpich(Package):
def setup_dependent_package(self, module, dependent_spec):
spec = self.spec
- if "+wrappers" in spec:
+ if spec.satisfies("+wrappers"):
spec.mpicc = join_path(self.prefix.bin, "mpicc")
spec.mpicxx = join_path(self.prefix.bin, "mpicxx")
spec.mpifc = join_path(self.prefix.bin, "mpif90")
diff --git a/var/spack/repos/builtin/packages/crtm-fix/package.py b/var/spack/repos/builtin/packages/crtm-fix/package.py
index ca8cb421c0..6dd0242c3a 100644
--- a/var/spack/repos/builtin/packages/crtm-fix/package.py
+++ b/var/spack/repos/builtin/packages/crtm-fix/package.py
@@ -42,12 +42,12 @@ class CrtmFix(Package):
mkdir(self.prefix.fix)
endian_dirs = []
- if "+big_endian" in spec:
+ if spec.satisfies("+big_endian"):
endian_dirs.append("Big_Endian")
- elif "+little_endian" in spec:
+ elif spec.satisfies("+little_endian"):
endian_dirs.append("Little_Endian")
- if "+netcdf" in spec:
+ if spec.satisfies("+netcdf"):
endian_dirs.extend(["netcdf", "netCDF"])
fix_files = []
diff --git a/var/spack/repos/builtin/packages/cudnn/package.py b/var/spack/repos/builtin/packages/cudnn/package.py
index 38dc8c88a3..2d1a7b3b95 100644
--- a/var/spack/repos/builtin/packages/cudnn/package.py
+++ b/var/spack/repos/builtin/packages/cudnn/package.py
@@ -386,13 +386,13 @@ class Cudnn(Package):
# Package is not compiled, and does not work unless LD_LIBRARY_PATH is set
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)
- if "target=ppc64le: platform=linux" in self.spec:
+ if self.spec.satisfies("target=ppc64le: platform=linux"):
env.set("cuDNN_ROOT", os.path.join(self.prefix, "targets", "ppc64le-linux"))
def install(self, spec, prefix):
install_tree(".", prefix)
- if "target=ppc64le: platform=linux" in spec:
+ if spec.satisfies("target=ppc64le: platform=linux"):
target_lib = os.path.join(prefix, "targets", "ppc64le-linux", "lib")
if os.path.isdir(target_lib) and not os.path.isdir(prefix.lib):
symlink(target_lib, prefix.lib)
diff --git a/var/spack/repos/builtin/packages/curl/package.py b/var/spack/repos/builtin/packages/curl/package.py
index fa8316e928..c3d46c6634 100644
--- a/var/spack/repos/builtin/packages/curl/package.py
+++ b/var/spack/repos/builtin/packages/curl/package.py
@@ -281,21 +281,21 @@ class NMakeBuilder(BuildEnvironment, NMakeBuilder):
args.append("mode=%s" % mode)
args.append("WITH_ZLIB=%s" % mode)
args.append("ZLIB_PATH=%s" % self.spec["zlib-api"].prefix)
- if "+libssh" in self.spec:
+ if self.spec.satisfies("+libssh"):
args.append("WITH_SSH=%s" % mode)
- if "+libssh2" in self.spec:
+ if self.spec.satisfies("+libssh2"):
args.append("WITH_SSH2=%s" % mode)
args.append("SSH2_PATH=%s" % self.spec["libssh2"].prefix)
- if "+nghttp2" in self.spec:
+ if self.spec.satisfies("+nghttp2"):
args.append("WITH_NGHTTP2=%s" % mode)
args.append("NGHTTP2=%s" % self.spec["nghttp2"].prefix)
- if "tls=openssl" in self.spec:
+ if self.spec.satisfies("tls=openssl"):
args.append("WITH_SSL=%s" % mode)
args.append("SSL_PATH=%s" % self.spec["openssl"].prefix)
- elif "tls=mbedtls" in self.spec:
+ elif self.spec.satisfies("tls=mbedtls"):
args.append("WITH_MBEDTLS=%s" % mode)
args.append("MBEDTLS_PATH=%s" % self.spec["mbedtls"].prefix)
- elif "tls=sspi" in self.spec:
+ elif self.spec.satisfies("tls=sspi"):
args.append("ENABLE_SSPI=%s" % mode)
# The trailing path seperator is REQUIRED for cURL to install