spack/lib/spack
Massimiliano Culpo 0139288ced
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).
2023-05-08 10:12:26 -07:00
..
docs Add a "requires" directive, extend functionality of package requirements (#36286) 2023-05-08 10:12:26 -07:00
env cc: deal with -Wl,-rpath= without value, deal with NAG (#37215) 2023-05-05 12:16:31 +02:00
external Update vendored ruamel.yaml to v0.17.21 (#37008) 2023-05-04 08:00:38 -07:00
llnl Add llnl.util.filesystem.find_first (#36083) 2023-03-27 09:42:16 -07:00
spack Add a "requires" directive, extend functionality of package requirements (#36286) 2023-05-08 10:12:26 -07:00
spack_installable license year bump (#34921) 2023-01-18 14:30:17 -08:00