summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin.mock
diff options
context:
space:
mode:
authorKayla Butler <butler59@llnl.gov>2022-03-28 14:18:00 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2022-11-02 09:43:57 -0700
commitbc209c470d07621ba9af277dab71d048d11f2844 (patch)
tree8f48e8785c9462d97046f5bb67ddd30ab4e6ab1f /var/spack/repos/builtin.mock
parentae99829af4393295953afa0f08394bdcd2b58b75 (diff)
downloadspack-bc209c470d07621ba9af277dab71d048d11f2844.tar.gz
spack-bc209c470d07621ba9af277dab71d048d11f2844.tar.bz2
spack-bc209c470d07621ba9af277dab71d048d11f2844.tar.xz
spack-bc209c470d07621ba9af277dab71d048d11f2844.zip
flags/variants: Add ++/~~/== syntax for propagation to dependencies
Currently, compiler flags and variants are inconsistent: compiler flags set for a package are inherited by its dependencies, while variants are not. We should have these be consistent by allowing for inheritance to be enabled or disabled for both variants and compiler flags. - [x] Make new (spec language) operators - [x] Apply operators to variants and compiler flags - [x] Conflicts currently result in an unsatisfiable spec (i.e., you can't propagate two conflicting values) What I propose is using two of the currently used sigils to symbolized that the variant or compiler flag will be inherited: Example syntax: - `package ++variant` enabled variant that will be propagated to dependencies - `package +variant` enabled variant that will NOT be propagated to dependencies - `package ~~variant` disabled variant that will be propagated to dependencies - `package ~variant` disabled variant that will NOT be propagated to dependencies - `package cflags==True` `cflags` will be propagated to dependencies - `package cflags=True` `cflags` will NOT be propagated to dependencies Syntax for string-valued variants is similar to compiler flags.
Diffstat (limited to 'var/spack/repos/builtin.mock')
-rw-r--r--var/spack/repos/builtin.mock/packages/hypre/package.py7
-rw-r--r--var/spack/repos/builtin.mock/packages/openblas/package.py2
2 files changed, 9 insertions, 0 deletions
diff --git a/var/spack/repos/builtin.mock/packages/hypre/package.py b/var/spack/repos/builtin.mock/packages/hypre/package.py
index fe077f067d..7182cf628a 100644
--- a/var/spack/repos/builtin.mock/packages/hypre/package.py
+++ b/var/spack/repos/builtin.mock/packages/hypre/package.py
@@ -2,6 +2,7 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+import sys
from spack.package import *
@@ -17,3 +18,9 @@ class Hypre(Package):
depends_on("lapack")
depends_on("blas")
+
+ variant(
+ "shared",
+ default=(sys.platform != "darwin"),
+ description="Build shared library (disables static library)",
+ )
diff --git a/var/spack/repos/builtin.mock/packages/openblas/package.py b/var/spack/repos/builtin.mock/packages/openblas/package.py
index 1e948da8f2..8c2f26de57 100644
--- a/var/spack/repos/builtin.mock/packages/openblas/package.py
+++ b/var/spack/repos/builtin.mock/packages/openblas/package.py
@@ -17,6 +17,8 @@ class Openblas(Package):
version("0.2.14", "b1190f3d3471685f17cfd1ec1d252ac9")
version("0.2.13", "b1190f3d3471685f17cfd1ec1d252ac9")
+ variant("shared", default=True, description="Build shared libraries")
+
# See #20019 for this conflict
conflicts("%gcc@:4.4", when="@0.2.14:")