summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2023-05-08 19:12:26 +0200
committerGitHub <noreply@github.com>2023-05-08 10:12:26 -0700
commit0139288ced598cb45c4d947473f1d886b603607b (patch)
treef1f565b7e77b496b09f3429493e0affd9160d9b4 /share
parentd0cba2bf35f347a5ca09163f8b93ba9788f46ba1 (diff)
downloadspack-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