diff options
author | Auriane R. <48684432+aurianer@users.noreply.github.com> | 2024-08-04 19:59:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-04 11:59:13 -0600 |
commit | 530639e15fb792911f7900127989b0f294928fb3 (patch) | |
tree | cbbe6043c82b369d09a1fb47cf2640ec55b8aa56 /var | |
parent | c8695f2ba67d7a74f240ca909ae480f411ffaf0d (diff) | |
download | spack-530639e15fb792911f7900127989b0f294928fb3.tar.gz spack-530639e15fb792911f7900127989b0f294928fb3.tar.bz2 spack-530639e15fb792911f7900127989b0f294928fb3.tar.xz spack-530639e15fb792911f7900127989b0f294928fb3.zip |
Use satisfies instead of if ... in spec in b* and c* directories (#45555)
Diffstat (limited to 'var')
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 |