diff options
author | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2023-05-08 19:12:26 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-08 10:12:26 -0700 |
commit | 0139288ced598cb45c4d947473f1d886b603607b (patch) | |
tree | f1f565b7e77b496b09f3429493e0affd9160d9b4 /share | |
parent | d0cba2bf35f347a5ca09163f8b93ba9788f46ba1 (diff) | |
download | spack-0139288ced598cb45c4d947473f1d886b603607b.tar.gz spack-0139288ced598cb45c4d947473f1d886b603607b.tar.bz2 spack-0139288ced598cb45c4d947473f1d886b603607b.tar.xz spack-0139288ced598cb45c4d947473f1d886b603607b.zip |
Add a "requires" directive, extend functionality of package requirements (#36286)
Add a "require" directive to packages, which functions exactly like
requirements specified in packages.yaml (uses the same fact-generation
logic); update both to allow making the requirement conditional.
* Packages may now use "require" to add constraints. This can be useful
for something like "require(%gcc)" (where before we had to add a
conflict for every compiler except gcc).
* Requirements (in packages.yaml or in a "require" directive) can be
conditional on a spec, e.g. "require(%gcc, when=@1.0.0)" (version
1.0.0 can only build with gcc).
* Requirements may include a message which clarifies why they are needed.
The concretizer assigns a high priority to errors which generate these
messages (in particular over errors for unsatisfied requirements that
do not produce messages, but also over a number of more-generic
errors).
Diffstat (limited to 'share')
0 files changed, 0 insertions, 0 deletions