Add syntactic sugar for "strong preferences" and "conflicts" (#41832)
Currently requirements allow to express "strong preferences" and "conflicts" from
configuration using a convoluted syntax:
```yaml
packages:
zlib-ng:
require:
# conflict on %clang
- one_of: ["%clang", "@:"]
# Strong preference for +shared
- any_of: ["+shared", "@:"]
```
This PR adds syntactic sugar so that the same can be written as:
```yaml
packages:
zlib-ng:
conflict:
- "%clang"
prefer:
- "+shared"
```
Preferences written in this way are "stronger" that the ones documented at:
- https://spack.readthedocs.io/en/latest/packages_yaml.html#package-preferences
This commit is contained in:
committed by
GitHub
parent
ed9d495915
commit
66813460c0
@@ -10,8 +10,8 @@ spack:
|
||||
|
||||
packages:
|
||||
all:
|
||||
require:
|
||||
- any_of: ["%cce", "@:"] # cce as a strong preference; not all packages support it
|
||||
prefer:
|
||||
- "%cce"
|
||||
compiler: [cce]
|
||||
providers:
|
||||
blas: [cray-libsci]
|
||||
|
||||
@@ -8,8 +8,9 @@ spack:
|
||||
packages:
|
||||
all:
|
||||
require:
|
||||
- any_of: ["%oneapi", "@:"] # oneapi as a strong preference; not all packages support it
|
||||
- "target=x86_64_v3"
|
||||
prefer:
|
||||
- "%oneapi"
|
||||
providers:
|
||||
blas: [openblas]
|
||||
mpi: [mpich]
|
||||
|
||||
Reference in New Issue
Block a user