Ensure that all variants have a description (#39025)

* Ensure that all variants have a description

* Update mock packages too

* Fix test invocations

* Black fix

* mgard: update variant descriptions

* flake8 fix

* black fix

* Add to audit tests

* Relax type hints

* Older Python support

* Undo all changes to mock packages

* Flake8 fix
This commit is contained in:
Adam J. Stewart 2023-08-08 09:29:49 -05:00 committed by GitHub
parent 6576655137
commit 361632fc4b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
63 changed files with 341 additions and 167 deletions

View file

@ -709,6 +709,21 @@ def _ensure_variant_defaults_are_parsable(pkgs, error_cls):
return errors
@package_directives
def _ensure_variants_have_descriptions(pkgs, error_cls):
"""Ensures that all variants have a description."""
errors = []
for pkg_name in pkgs:
pkg_cls = spack.repo.path.get_pkg_class(pkg_name)
for variant_name, entry in pkg_cls.variants.items():
variant, _ = entry
if not variant.description:
error_msg = "Variant '{}' in package '{}' is missing a description"
errors.append(error_cls(error_msg.format(variant_name, pkg_name), []))
return errors
@package_directives
def _version_constraints_are_satisfiable_by_some_version_in_repo(pkgs, error_cls):
"""Report if version constraints used in directives are not satisfiable"""

View file

@ -33,7 +33,7 @@ class OpenMpi(Package):
import functools
import os.path
import re
from typing import List, Optional, Set, Union
from typing import Any, Callable, List, Optional, Set, Tuple, Union
import llnl.util.lang
import llnl.util.tty.color
@ -663,39 +663,35 @@ def _execute_patch(pkg_or_dep):
@directive("variants")
def variant(
name,
default=None,
description="",
values=None,
multi=None,
validator=None,
when=None,
sticky=False,
name: str,
default: Optional[Any] = None,
description: str = "",
values: Optional[Union[collections.abc.Sequence, Callable[[Any], bool]]] = None,
multi: Optional[bool] = None,
validator: Optional[Callable[[str, str, Tuple[Any, ...]], None]] = None,
when: Optional[Union[str, bool]] = None,
sticky: bool = False,
):
"""Define a variant for the package. Packager can specify a default
value as well as a text description.
"""Define a variant for the package.
Packager can specify a default value as well as a text description.
Args:
name (str): name of the variant
default (str or bool): default value for the variant, if not
specified otherwise the default will be False for a boolean
variant and 'nothing' for a multi-valued variant
description (str): description of the purpose of the variant
values (tuple or typing.Callable): either a tuple of strings containing the
allowed values, or a callable accepting one value and returning
True if it is valid
multi (bool): if False only one value per spec is allowed for
this variant
validator (typing.Callable): optional group validator to enforce additional
logic. It receives the package name, the variant name and a tuple
of values and should raise an instance of SpackError if the group
doesn't meet the additional constraints
when (spack.spec.Spec, bool): optional condition on which the
variant applies
sticky (bool): the variant should not be changed by the concretizer to
find a valid concrete spec.
name: Name of the variant
default: Default value for the variant, if not specified otherwise the default will be
False for a boolean variant and 'nothing' for a multi-valued variant
description: Description of the purpose of the variant
values: Either a tuple of strings containing the allowed values, or a callable accepting
one value and returning True if it is valid
multi: If False only one value per spec is allowed for this variant
validator: Optional group validator to enforce additional logic. It receives the package
name, the variant name and a tuple of values and should raise an instance of SpackError
if the group doesn't meet the additional constraints
when: Optional condition on which the variant applies
sticky: The variant should not be changed by the concretizer to find a valid concrete spec
Raises:
DirectiveError: if arguments passed to the directive are invalid
DirectiveError: If arguments passed to the directive are invalid
"""
def format_error(msg, pkg):

View file

@ -42,12 +42,12 @@ class Armcomputelibrary(SConsPackage):
phases = ["build"]
variant("build_type", default="release", values=("release", "debug"))
variant("build_type", default="release", values=("release", "debug"), description="Build type")
variant(
"threads",
default="cppthreads",
values=("cppthreads", "openmp"),
description="Enable C++11 threads/OpenMP backend. OpenMP backend only"
description="Enable C++11 threads/OpenMP backend. OpenMP backend only "
"works when building with g++ and not clang++.",
)
variant(

View file

@ -29,12 +29,8 @@ class Autodiff(CMakePackage):
version("0.6.4", sha256="cfe0bb7c0de10979caff9d9bfdad7e6267faea2b8d875027397486b47a7edd75")
version("0.5.13", sha256="a73dc571bcaad6b44f74865fed51af375f5a877db44321b5568d94a4358b77a1")
variant(
"python", default="False", description="Enable the compilation of the python bindings."
)
variant(
"examples", default="False", description="Enable the compilation of the example files."
)
variant("python", default=False, description="Enable the compilation of the python bindings.")
variant("examples", default=False, description="Enable the compilation of the example files.")
depends_on("cmake@3.0:", type="build")
depends_on("cmake@3.22:", when="@0.6.8", type="build")

View file

@ -32,7 +32,7 @@ class BerkeleyDb(AutotoolsPackage):
)
version("5.3.28", sha256="e0a992d740709892e81f9d93f06daf305cf73fb81b545afe72478043172c3628")
variant("docs", default=False)
variant("docs", default=False, description="Build documentation")
variant("cxx", default=True, description="Build with C++ API")
variant("stl", default=True, description="Build with C++ STL API")

View file

@ -18,7 +18,7 @@ class Coral(CMakePackage):
version("3.3.10", tag="CORAL_3_3_10")
version("3.3.3", tag="CORAL_3_3_3")
variant("binary_tag", default="auto")
variant("binary_tag", default="auto", description="Build type")
depends_on("ninja")
depends_on("ccache")

View file

@ -35,7 +35,7 @@ class Davix(CMakePackage):
depends_on("uuid")
depends_on("openssl")
variant("thirdparty", default=False)
variant("thirdparty", default=False, description="Build vendored libraries")
depends_on("gsoap", when="+thirdparty")
def cmake_args(self):

View file

@ -16,8 +16,8 @@ class E3smScorpio(CMakePackage):
version("1.4.1", sha256="7cb4589410080d7e547ef17ddabe68f749e6af019c1d0e6ee9f11554f3ff6b1a")
variant("timing", default="False", description="Enable timing")
variant("mpi", default="True", description="Enable MPI")
variant("timing", default=False, description="Enable timing")
variant("mpi", default=True, description="Enable MPI")
depends_on("gptl", when="+timing")
depends_on("mpi", when="+mpi")

View file

@ -16,9 +16,9 @@ class Freesasa(AutotoolsPackage):
version("2.1.2", sha256="a031c4eb8cd59e802d715a37ef72930ec2d90ec53dfcf1bea0b0255980490fd5")
variant("json", default=True)
variant("xml", default=True)
variant("threads", default=True)
variant("json", default=True, description="Build with support for JSON output")
variant("xml", default=True, description="Build with support for XML output")
variant("threads", default=True, description="Build with support for multiple threads")
depends_on("autoconf", type="build")
depends_on("automake", type="build")

View file

@ -28,14 +28,14 @@ class Ftk(CMakePackage):
version("0.0.4", sha256="1674904da8d88dbd4c7d2b6a2629883f0444e70aefc99b48d285735d394897fa")
# variants
variant("adios2", default=False)
variant("cuda", default=False)
variant("gmp", default=False)
variant("hdf5", default=False)
variant("metis", default=False)
variant("mpi", default=False)
variant("netcdf", default=False)
variant("vtk", default=False)
variant("adios2", default=False, description="Use ADIOS2")
variant("cuda", default=False, description="Use CUDA")
variant("gmp", default=False, description="Use GMP")
variant("hdf5", default=False, description="Use HDF5")
variant("metis", default=False, description="Use METIS")
variant("mpi", default=False, description="Use MPI")
variant("netcdf", default=False, description="Use NetCDF")
variant("vtk", default=False, description="Use VTK")
# optional dependencies
depends_on("adios2", when="+adios2")

View file

@ -16,9 +16,9 @@ class G2c(CMakePackage):
maintainers("AlexanderRichert-NOAA", "Hang-Lei-NOAA", "edwardhartnett")
variant("png", default=True)
variant("jasper", default=True)
variant("openjpeg", default=False)
variant("png", default=True, description="Use PNG library")
variant("jasper", default=True, description="Use Jasper library")
variant("openjpeg", default=False, description="Use OpenJPEG library")
version("1.7.0", sha256="73afba9da382fed73ed8692d77fa037bb313280879cd4012a5e5697dccf55175")
version("1.6.4", sha256="5129a772572a358296b05fbe846bd390c6a501254588c6a223623649aefacb9d")

View file

@ -27,7 +27,7 @@ class Generax(CMakePackage):
depends_on("bison")
depends_on("flex")
variant("mpi", default=False)
variant("mpi", default=False, description="Build with MPI support")
build_directory = "build"

View file

@ -22,10 +22,10 @@ class Gptl(AutotoolsPackage):
version("8.0.3", sha256="334979c6fe78d4ed1b491ec57fb61df7a910c58fd39a3658d03ad89f077a4db6")
version("8.0.2", sha256="011f153084ebfb52b6bf8f190835d4bae6f6b5c0ad320331356aa47a547bf2b4")
variant("pmpi", default=False)
variant("papi", default=False)
variant("nestedomp", default=False)
variant("disable-unwind", default=False)
variant("pmpi", default=False, description="Build with PMPI support to auto-profile MPI calls")
variant("papi", default=False, description="Enable built-in support for papi library")
variant("nestedomp", default=False, description="Build with nested OMP capability")
variant("disable-unwind", default=False, description="Skip check for libunwind")
depends_on("mpi")

View file

@ -21,7 +21,7 @@ class GpuBurn(MakefilePackage, CudaPackage):
# This package uses CudaPackage to pick up the cuda_arch variant. A side
# effect is that it also picks up the cuda variant, but cuda is required
# for gpu-burn so is not really a variant.
variant("cuda", "True", description="Use CUDA; must be true")
variant("cuda", default=True, description="Use CUDA; must be true")
conflicts("~cuda", msg="gpu-burn requires cuda")
conflicts("cuda_arch=none", msg="must select a CUDA architecture")

View file

@ -26,13 +26,27 @@ class GslLite(CMakePackage):
version("0.36.0", sha256="c052cc4547b33cedee6f000393a7005915c45c6c06b35518d203db117f75c71c")
version("0.34.0", sha256="a7d5b2672b78704ca03df9ef65bc274d8f8cacad3ca950365eef9e25b50324c5")
variant("tests", default=False)
variant("cuda_tests", default=False)
variant("examples", default=False)
variant("static_analysis_demos", default=False)
variant("cmake_export_package_registry", default=False)
variant("compat_header", default=False)
variant("legacy_headers", default=False)
variant("tests", default=False, description="Build and perform gsl-lite tests")
variant("cuda_tests", default=False, description="Build and perform gsl-lite CUDA tests")
variant("examples", default=False, description="Build gsl-lite examples")
variant(
"static_analysis_demos",
default=False,
description="Build and perform gsl-lite static analysis demos",
)
variant(
"cmake_export_package_registry",
default=False,
description="Export build directory to CMake user package registry",
)
variant(
"compat_header", default=False, description="Install MS-GSL compatibility header <gsl/gsl>"
)
variant(
"legacy_headers",
default=False,
description="Install legacy headers <gsl.h>, <gsl.hpp>, <gsl/gsl-lite.h>",
)
def cmake_args(self):
args = [

View file

@ -36,7 +36,7 @@ class Gtkplus(MesonPackage):
deprecated=True,
)
variant("cups", default="False", description="enable cups support")
variant("cups", default=False, description="enable cups support")
# See meson.build for version requirements
depends_on("meson@0.48.0:", when="@3.24:", type="build")

View file

@ -108,6 +108,7 @@ class Hipblas(CMakePackage, CudaPackage, ROCmPackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets)
.with_default("auto")
.with_error(

View file

@ -102,6 +102,7 @@ class Hipcub(CMakePackage, CudaPackage, ROCmPackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets)
.with_default("auto")
.with_error(

View file

@ -79,6 +79,7 @@ class Hipfft(CMakePackage, CudaPackage, ROCmPackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets)
.with_default("auto")
.with_error(

View file

@ -38,6 +38,7 @@ class Hiprand(CMakePackage, CudaPackage, ROCmPackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets)
.with_default("auto")
.with_error(

View file

@ -63,6 +63,7 @@ class Hipsolver(CMakePackage, CudaPackage, ROCmPackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets)
.with_default("auto")
.with_error(

View file

@ -105,6 +105,7 @@ class Hipsparse(CMakePackage, CudaPackage, ROCmPackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=spack.variant.DisjointSetsOfValues(("auto",), ("none",), amdgpu_targets)
.with_default("auto")
.with_error(

View file

@ -70,12 +70,37 @@ class KokkosKernels(CMakePackage, CudaPackage):
depends_on("kokkos+%s" % backend.lower(), when="+%s" % backend.lower())
space_etis = {
"execspace_cuda": ("auto", "", "cuda"),
"execspace_openmp": ("auto", "", "openmp"),
"execspace_threads": ("auto", "", "threads"),
"execspace_serial": ("auto", "", "serial"),
"memspace_cudauvmspace": ("auto", "", "cuda"),
"memspace_cudaspace": ("auto", "", "cuda"),
"execspace_cuda": (
"auto",
"Whether to pre instantiate kernels for the execution space Kokkos::Cuda",
"cuda",
),
"execspace_openmp": (
"auto",
"Whether to pre instantiate kernels for the execution space "
"Kokkos::Experimental::OpenMPTarget",
"openmp",
),
"execspace_threads": (
"auto",
"Whether to build kernels for the execution space Kokkos::Threads",
"threads",
),
"execspace_serial": (
"auto",
"Whether to build kernels for the execution space Kokkos::Serial",
"serial",
),
"memspace_cudauvmspace": (
"auto",
"Whether to pre instantiate kernels for the memory space Kokkos::CudaUVMSpace",
"cuda",
),
"memspace_cudaspace": (
"auto",
"Whether to pre instantiate kernels for the memory space Kokkos::CudaSpace",
"cuda",
),
}
for eti in space_etis:
deflt, descr, backend_required = space_etis[eti]
@ -97,7 +122,7 @@ class KokkosKernels(CMakePackage, CudaPackage):
}
for eti in numeric_etis:
deflt, cmake_name, vals = numeric_etis[eti]
variant(eti, default=deflt, values=vals, multi=True)
variant(eti, default=deflt, description=eti, values=vals, multi=True)
tpls = {
# variant name #deflt #spack name #root var name #docstring

View file

@ -202,7 +202,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
stds = ["11", "14", "17", "20"]
# TODO: This should be named cxxstd for consistency with other packages
variant("std", default="17", values=stds, multi=False)
variant("std", default="17", values=stds, multi=False, description="C++ standard")
variant("pic", default=False, description="Build position independent code")
conflicts("std=11", when="@3.7:")

View file

@ -112,7 +112,7 @@ class Legion(CMakePackage, ROCmPackage):
# current development policy is C++11 or greater so we capture that aspect
# here.
cpp_stds = ["11", "14", "17", "20"]
variant("cxxstd", default="11", values=cpp_stds, multi=False)
variant("cxxstd", default="11", description="C++ standard", values=cpp_stds, multi=False)
# Network transport layer: the underlying data transport API should be used for
# distributed data movement. For Legion, gasnet is the currently the most

View file

@ -23,7 +23,12 @@ class Libssh2(AutotoolsPackage, CMakePackage):
build_system("autotools", "cmake", default="autotools")
variant("crypto", default="openssl", values=("openssl", conditional("mbedtls", when="@1.8:")))
variant(
"crypto",
default="openssl",
description="The backend to use for cryptography",
values=("openssl", conditional("mbedtls", when="@1.8:")),
)
variant("shared", default=True, description="Build shared libraries")
with when("build_system=cmake"):

View file

@ -30,7 +30,12 @@ def url_for_version(self, version):
version("4.4.16", sha256="a98f65b8baffa2b5ba68ee53c10c0a328166ef4116bce3baece190c8ce01f375")
version("4.4.15", sha256="8bcdef03bc65f9dbda742e56820435b6f13eea59fb903765141c6467f4655e5a")
variant("obsolete_api", default=False, when="@4.4.30:")
variant(
"obsolete_api",
default=False,
description="Enable all compatibility interfaces",
when="@4.4.30:",
)
patch("truncating-conversion.patch", when="@4.4.30")

View file

@ -51,7 +51,7 @@ class Libyogrt(AutotoolsPackage):
conflicts("scheduler=lsf", when="@:1.22")
variant("static", default="False", description="build static library")
variant("static", default=False, description="build static library")
def url_for_version(self, version):
if version < Version("1.21"):

View file

@ -26,10 +26,20 @@ class Mgard(CMakePackage, CudaPackage):
version("2021-11-12", commit="3c05c80a45a51bb6cc5fb5fffe7b1b16787d3366")
version("2020-10-01", commit="b67a0ac963587f190e106cc3c0b30773a9455f7a")
variant("serial", when="@2022-11-18:", default=True)
variant("openmp", when="@2022-11-18:", default=True)
variant("timing", when="@2022-11-18:", default=False)
variant("unstructured", when="@2022-11-18:", default=False)
variant(
"serial",
when="@2022-11-18:",
default=True,
description="Enable the classic non-parallel implmementation",
)
variant("openmp", when="@2022-11-18:", default=True, description="Enable OpenMP support")
variant("timing", when="@2022-11-18:", default=False, description="Enable profile timings")
variant(
"unstructured",
when="@2022-11-18:",
default=False,
description="Enable experimental unstructured mesh support",
)
depends_on("python", type=("build",), when="@2022-11-18:")
depends_on("sed", type=("build",), when="@2022-11-18:")

View file

@ -44,7 +44,13 @@ class MiopenTensile(CMakePackage):
tensile_architecture = ("all", "gfx906", "gfx908", "gfx803", "gfx900")
variant("tensile_architecture", default="all", values=tensile_architecture, multi=True)
variant(
"tensile_architecture",
default="all",
description="AMD GPU architecture",
values=tensile_architecture,
multi=True,
)
variant(
"build_type",
default="Release",

View file

@ -23,16 +23,22 @@ class NimrodAai(CMakePackage):
version("main", branch="main")
version("23.6", sha256="1794b89a5a64ff2b3c548818b90d17eef85d819ba4f63a76c41a682d5b76c14f")
variant("debug", default=False)
variant("openacc", default=False)
variant("openacc_autocompare", default=False)
variant("enable_shared", default=True)
variant("mpi", default=False)
variant("time_level1", default=False)
variant("time_level2", default=False)
variant("nvtx_profile", default=False)
variant("openacc_cc", default="native")
variant("trap_fp_exceptions", default=False)
variant("debug", default=False, description="Whether to enable debug code")
variant("openacc", default=False, description="Whether to enable OpenACC")
variant(
"openacc_autocompare", default=False, description="Whether to enable OpenACC autocompare"
)
variant("enable_shared", default=True, description="Whether to build and use shared libraries")
variant("mpi", default=False, description="Whether to enable MPI")
variant("time_level1", default=False, description="Whether to add timings at level 1")
variant("time_level2", default=False, description="Whether to add timings at level 2")
variant("nvtx_profile", default=False, description="Whether to enable NVTX profiling")
variant("openacc_cc", default="native", description="OpenACC compute capability")
variant(
"trap_fp_exceptions",
default=False,
description="Whether to enable trapping of floating point exceptions",
)
depends_on("cmake", type="build")
depends_on("hdf5+fortran", type="build")

View file

@ -21,8 +21,8 @@ class Nlcglib(CMakePackage, CudaPackage, ROCmPackage):
version("1.0b", sha256="086c46f06a117f267cbdf1df4ad42a8512689a9610885763f463469fb15e82dc")
version("0.9", sha256="8d5bc6b85ee714fb3d6480f767e7f43e5e7d569116cf60e48f533a7f50a37a08")
variant("openmp", default=True)
variant("tests", default=False)
variant("openmp", default=True, description="Use OpenMP")
variant("tests", default=False, description="Build tests")
variant(
"build_type",
default="Release",

View file

@ -52,28 +52,28 @@ class Octave(AutotoolsPackage, GNUMirrorPackage):
patch("patch_4.2.1_inline.diff", when="@4.2.1")
# Variants
variant("readline", default=True)
variant("bz2", default=True)
variant("arpack", default=False)
variant("curl", default=False)
variant("fftw", default=False)
variant("fltk", default=False)
variant("fontconfig", default=False)
variant("freetype", default=False)
variant("glpk", default=False)
variant("gl2ps", default=False)
variant("gnuplot", default=False)
variant("magick", default=False)
variant("hdf5", default=False)
variant("jdk", default=False)
variant("llvm", default=False)
variant("opengl", default=False)
variant("qhull", default=False)
variant("qrupdate", default=False)
variant("qscintilla", default=False)
variant("qt", default=False)
variant("suitesparse", default=False)
variant("zlib", default=False)
variant("readline", default=True, description="Use readline")
variant("bz2", default=True, description="Use bzip2")
variant("arpack", default=False, description="Use arpack")
variant("curl", default=False, description="Use curl")
variant("fftw", default=False, description="Use FFTW3")
variant("fltk", default=False, description="Use FLTK")
variant("fontconfig", default=False, description="Use fontconfig")
variant("freetype", default=False, description="Use freetype")
variant("glpk", default=False, description="Use GLPK")
variant("gl2ps", default=False, description="Use GL2PS")
variant("gnuplot", default=False, description="Use gnuplot")
variant("magick", default=False, description="Use magick")
variant("hdf5", default=False, description="Use HDF5")
variant("jdk", default=False, description="Use JDK")
variant("llvm", default=False, description="Use LLVM")
variant("opengl", default=False, description="Use OpenGL")
variant("qhull", default=False, description="Use qhull")
variant("qrupdate", default=False, description="Use qrupdate")
variant("qscintilla", default=False, description="Use QScintill")
variant("qt", default=False, description="Use Qt")
variant("suitesparse", default=False, description="Use SuiteSparse")
variant("zlib", default=False, description="Use zlib")
# Required dependencies
depends_on("blas")

View file

@ -15,7 +15,7 @@ class PyHist(PythonPackage):
version("2.6.1", sha256="ee9034795fd2feefed923461aaccaf76f87c1f8d5414b1e704faa293ceb4fc27")
version("2.5.2", sha256="0bafb8b956cc041f1b26e8f5663fb8d3b8f7673f56336facb84d8cfdc30ae2cf")
variant("plot", default="False", description="Add support for drawing histograms")
variant("plot", default=False, description="Add support for drawing histograms")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools@45:", type="build")

View file

@ -19,7 +19,13 @@ class PyOpenpmdViewer(PythonPackage):
version("1.3.0", sha256="236c065a37881fcb7603efde0bf2d61acc355a8acc595bebc3d6b9d03251b081")
version("1.2.0", sha256="a27f8ac522c4c76fd774095e156a8b280c9211128f50aa07f16ac70d8222384d")
variant("backend", default="h5py,openpmd-api", multi=True, values=("h5py", "openpmd-api"))
variant(
"backend",
default="h5py,openpmd-api",
description="Visualization backend",
multi=True,
values=("h5py", "openpmd-api"),
)
variant("jupyter", default=False, description="Enable Jupyter Widget GUI")
variant("numba", default=False, description="Enable accelerated depositions for histograms")
variant("plot", default=True, description="Enable plotting support")

View file

@ -105,7 +105,12 @@ class Rccl(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
patch("0001-Fix-numactl-path-issue.patch", when="@3.7.0:4.3.2")
patch("0002-Fix-numactl-rocm-smi-path-issue.patch", when="@4.5.0:5.2.1")

View file

@ -109,7 +109,12 @@ class Rocalution(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
depends_on("cmake@3.5:", type="build")
for ver in ["3.5.0", "3.7.0", "3.8.0"]:

View file

@ -105,7 +105,12 @@ class Rocblas(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
variant("tensile", default=True, description="Use Tensile as a backend")
# gfx906, gfx908,gfx803,gfx900 are valid for @:4.0.0

View file

@ -102,9 +102,17 @@ class Rocfft(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target_sram_ecc", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
variant(
"amdgpu_target_sram_ecc",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
depends_on("cmake@3.16:", type="build", when="@4.5.0:")

View file

@ -115,7 +115,13 @@ class RocmTensile(CMakePackage):
"gfx1030",
)
variant("tensile_architecture", default="all", values=tensile_architecture, multi=True)
variant(
"tensile_architecture",
default="all",
description="AMD GPU architecture",
values=tensile_architecture,
multi=True,
)
variant("openmp", default=True, description="Enable OpenMP")
conflicts("tensile_architecture=gfx906", when="@4.0.1:")
conflicts("tensile_architecture=gfx908", when="@4.0.1:")

View file

@ -100,7 +100,12 @@ class Rocprim(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
depends_on("cmake@3.10.2:", type="build", when="@4.2.0:")
depends_on("cmake@3.5.1:", type="build")

View file

@ -109,7 +109,12 @@ class Rocrand(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
variant("hiprand", default=True, when="@5.1.0:", description="Build the hiprand library")
depends_on("cmake@3.10.2:", type="build", when="@4.5.0:")

View file

@ -23,7 +23,12 @@ class Rocsolver(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
variant(
"optimal",
default=True,

View file

@ -25,7 +25,12 @@ class Rocsparse(CMakePackage):
amdgpu_targets = ROCmPackage.amdgpu_targets
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
variant("test", default=False, description="Build rocsparse-test client")
version("5.5.1", sha256="1dd2d18898dfebdf898e8fe7d1c1198e8f8451fd70ff12a1990ec1419cf359e1")
version("5.5.0", sha256="cbee79b637691bc710c1c83fbaa91db7498d38d4df873be23e28ed5617acde72")

View file

@ -105,7 +105,12 @@ class Rocthrust(CMakePackage):
# the rocthrust library itself is header-only, but the build_type and amdgpu_target
# are relevant to the test client
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
depends_on("cmake@3.10.2:", type="build", when="@4.2.0:")
depends_on("cmake@3.5.1:", type="build")

View file

@ -41,7 +41,12 @@ class Rocwmma(CMakePackage):
# releases
amdgpu_targets = ("gfx908:xnack-", "gfx90a", "gfx90a:xnack-", "gfx90a:xnack+")
variant("amdgpu_target", values=auto_or_any_combination_of(*amdgpu_targets), sticky=True)
variant(
"amdgpu_target",
description="AMD GPU architecture",
values=auto_or_any_combination_of(*amdgpu_targets),
sticky=True,
)
variant(
"build_type",
default="Release",

View file

@ -157,7 +157,7 @@ class Root(CMakePackage):
default=False,
description="Enable support for TMultilayerPerceptron " "classes' federation",
)
variant("mysql", default=False)
variant("mysql", default=False, description="Enable support for MySQL databases")
variant("opengl", default=True, description="Enable OpenGL support")
variant("oracle", default=False, description="Enable support for Oracle databases")
variant("postgres", default=False, description="Enable postgres support")

View file

@ -12,10 +12,10 @@ class Semiprof(CMakePackage):
homepage = "https://github.com/bcumming/semiprof"
url = "https://github.com/bcumming/semiprof/archive/refs/tags/v0.1.tar.gz"
maintainers = ["simonpintarelli"]
maintainers("simonpintarelli")
variant("examples", default=False)
variant("shared", default=True)
variant("examples", default=False, description="Enable examples")
variant("shared", default=True, description="Build shared libraries")
version("0.1", sha256="4fb3823c65a4f5dfbe05e8cbe1911dfd25cd7740597f82c7b3a84472de26f0dc")

View file

@ -46,7 +46,7 @@ class Spglib(CMakePackage):
version("1.10.1", sha256="8ed979cda82f6d440567197ec191bffcb82ee83c5bfe8a484c5a008dd00273f0")
version("1.10.0", sha256="117fff308731784bea2ddaf3d076f0ecbf3981b31ea1c1bfd5ce4f057a5325b1")
variant("openmp", default=True, when="@1.16.2:")
variant("openmp", default=True, description="Build with OpenMP support", when="@1.16.2:")
@property
def libs(self):

View file

@ -22,10 +22,20 @@ class Tandem(CMakePackage):
patch("fix_v1.0_compilation.diff", when="@1.0")
maintainers("dmay23", "Thomas-Ulrich")
variant("polynomial_degree", default="2")
variant("domain_dimension", default="2", values=("2", "3"), multi=False)
variant("min_quadrature_order", default="0")
variant("libxsmm", default=False, description="installs libxsmm-generator")
variant("polynomial_degree", default="2", description="Polynomial degree")
variant(
"domain_dimension",
default="2",
description="Dimension of the domain",
values=("2", "3"),
multi=False,
)
variant(
"min_quadrature_order",
default="0",
description="Minimum order of quadrature rule, 0 = automatic",
)
variant("libxsmm", default=False, description="Install libxsmm-generator")
depends_on("mpi")
depends_on("parmetis +int64 +shared")

View file

@ -20,9 +20,9 @@ class TiledMm(CMakePackage, CudaPackage, ROCmPackage):
version("2.2", sha256="6d0b49c9588ece744166822fd44a7bc5bec3dc666b836de8bf4bf1a7bb675aac")
version("2.0", sha256="ea554aea8c53d7c8e40044e6d478c0e8137d7e8b09d7cb9650703430d92cf32e")
variant("shared", default=True)
variant("examples", default=False)
variant("tests", default=False)
variant("shared", default=True, description="Build shared libraries")
variant("examples", default=False, description="Enable examples")
variant("tests", default=False, description="Enable tests")
depends_on("rocblas", when="+rocm")
depends_on("cxxopts", when="+tests")

View file

@ -27,7 +27,7 @@ class Tmalign(Package):
deprecated=True,
)
variant("fast-math", default=False, when="@20220412:")
variant("fast-math", default=False, description="Enable fast math", when="@20220412:")
with when("@20220412:"):
phases = ["build", "install"]

View file

@ -21,7 +21,7 @@ class Tmscore(Package):
expand=False,
)
variant("fast-math", default=False)
variant("fast-math", default=False, description="Enable fast math")
phases = ["build", "install"]

View file

@ -72,7 +72,9 @@ class Trilinos(CMakePackage, CudaPackage, ROCmPackage):
variant("complex", default=False, description="Enable complex numbers in Trilinos")
variant("cuda_rdc", default=False, description="Turn on RDC for CUDA build")
variant("rocm_rdc", default=False, description="Turn on RDC for ROCm build")
variant("cxxstd", default="14", values=["11", "14", "17"], multi=False)
variant(
"cxxstd", default="14", description="C++ standard", values=["11", "14", "17"], multi=False
)
variant("debug", default=False, description="Enable runtime safety and debug checks")
variant(
"explicit_template_instantiation",

View file

@ -87,6 +87,7 @@ class Ucx(AutotoolsPackage, CudaPackage):
variant("rocm", default=False, description="Enable ROCm support")
variant(
"simd",
description="SIMD features",
values=disjoint_sets(("auto",), simd_values)
.with_default("auto")
.with_non_feature_values("auto"),

View file

@ -38,24 +38,24 @@ class Unifyfs(AutotoolsPackage):
variant(
"auto-mount",
default="True",
default=True,
description="Enable automatic mount/unmount in MPI_Init/Finalize",
)
variant(
"boostsys",
default="False",
default=False,
description="Have Mercury use preprocessor headers from boost dependency",
)
variant("fortran", default="True", description="Build with gfortran support")
variant("pmi", default="False", description="Enable PMI2 build options")
variant("pmix", default="False", description="Enable PMIx build options")
variant("fortran", default=True, description="Build with gfortran support")
variant("pmi", default=False, description="Enable PMI2 build options")
variant("pmix", default=False, description="Enable PMIx build options")
variant(
"preload",
default="False",
default=False,
when="@1.0.1:",
description="Enable support for LD_PRELOAD library",
)
variant("spath", default="True", description="Use spath library to normalize relative paths")
variant("spath", default=True, description="Use spath library to normalize relative paths")
depends_on("autoconf", type="build")
depends_on("automake", type="build")

View file

@ -23,10 +23,10 @@ class Upp(CMakePackage):
version("10.0.9", tag="upp_v10.0.9", submodules=True)
version("10.0.8", tag="upp_v10.0.8", submodules=True)
variant("openmp", default=True)
variant("postexec", default=True)
variant("wrf-io", default=False)
variant("docs", default=False)
variant("openmp", default=True, description="Use OpenMP threading")
variant("postexec", default=True, description="Build NCEPpost executable")
variant("wrf-io", default=False, description="Build NCEPpost with WRF-IO library")
variant("docs", default=False, description="Enable generation of doxygen-based documentation")
depends_on("mpi")
depends_on("netcdf-fortran")

View file

@ -30,7 +30,7 @@ class Usalign(Package):
expand=False,
)
variant("fast-math", default=False)
variant("fast-math", default=False, description="Enable fast math")
phases = ["build", "install"]

View file

@ -35,7 +35,9 @@ class WinSdk(Package):
version("10.0.10586")
version("10.0.26639")
variant("plat", values=("x64", "x86", "arm", "arm64"), default="x64")
variant(
"plat", values=("x64", "x86", "arm", "arm64"), default="x64", description="Toolchain arch"
)
# WinSDK versions depend on compatible compilers
# WDK versions do as well, but due to their one to one dep on the SDK

View file

@ -66,7 +66,9 @@ class WinWdk(Package):
expand=False,
)
variant("plat", values=("x64", "x86", "arm", "arm64"), default="x64")
variant(
"plat", values=("x64", "x86", "arm", "arm64"), default="x64", description="Toolchain arch"
)
# need one to one dep on SDK per https://github.com/MicrosoftDocs/windows-driver-docs/issues/1550
# additionally, the WDK needs to be paired with a version of the Windows SDK

View file

@ -26,6 +26,7 @@ class Wps(Package):
variant(
"build_type",
default="serial",
description="Build type",
values=("serial", "serial_NO_GRIB2", "dmpar", "dmpar_NO_GRIB2"),
)

View file

@ -96,15 +96,22 @@ class Wrf(Package):
url="https://github.com/wrf-model/WRF/archive/V3.9.1.1.tar.gz",
)
variant("build_type", default="dmpar", values=("serial", "smpar", "dmpar", "dm+sm"))
variant(
"build_type",
default="dmpar",
description="Build type",
values=("serial", "smpar", "dmpar", "dm+sm"),
)
variant(
"nesting",
default="basic",
description="Nesting",
values=("no_nesting", "basic", "preset_moves", "vortex_following"),
)
variant(
"compile_type",
default="em_real",
description="Compile type",
values=(
"em_real",
"em_quarter_ss",

View file

@ -52,7 +52,7 @@ class Xyce(CMakePackage):
# this defaults to 11, consistent with what will be used,
# and produces an error if any other value is attempted
cxxstd_choices = ["11"]
variant("cxxstd", default="11", values=cxxstd_choices, multi=False)
variant("cxxstd", default="11", description="C++ standard", values=cxxstd_choices, multi=False)
variant("pymi", default=False, description="Enable Python Model Interpreter for Xyce")
# Downstream dynamic library symbols from pip installed numpy and other