From a90026fb890568a79ef799373b50c25b7df8ffc7 Mon Sep 17 00:00:00 2001 From: Andrew W Elble Date: Tue, 8 Dec 2020 09:46:52 -0500 Subject: concretizer: try hard to obtain all needed variant_possible_value()'s (#20102) Track all the variant values mentioned when emitting constraints, validate them and emit a fact that allows them as possible values. This modification ensures that open-ended variants (variants accepting any string or any integer) are projected to the finite set of values that are relevant for this concretization. --- .../singlevalue-variant-dependent-type/package.py | 16 ++++++++++++++++ .../packages/singlevalue-variant/package.py | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py create mode 100644 var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py (limited to 'var') diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py new file mode 100644 index 0000000000..8b42a82b8d --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant-dependent-type/package.py @@ -0,0 +1,16 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +class SinglevalueVariantDependentType(Package): + """Simple package with one dependency that has a single-valued + variant with values=str""" + + homepage = "http://www.example.com" + url = "http://www.example.com/archive-1.0.tar.gz" + + version('1.0', '0123456789abcdef0123456789abcdef') + + depends_on('singlevalue-variant fum=nope') diff --git a/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py new file mode 100644 index 0000000000..fa6eca1527 --- /dev/null +++ b/var/spack/repos/builtin.mock/packages/singlevalue-variant/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +class SinglevalueVariant(Package): + homepage = "http://www.llnl.gov" + url = "http://www.llnl.gov/mpileaks-1.0.tar.gz" + + version(1.0, 'foobarbaz') + + variant( + 'fum', + description='Single-valued variant with type in values', + default='bar', + values=str, + multi=False + ) -- cgit v1.2.3-60-g2f50