Allow tuning max_dupes for build dependencies (#48948)
Up to now, Spack was allowing all build-tools that may appear in the DAG to have 2 max_dupes. This is not needed in practice for most of them, and adding them out of caution just increases grounding and concretization time. This PR makes the value of max_dupes configurable per package, and sets only a few known packages to 2 max_dupes by default. In case user needs different values, they can tune the configuration for their use case.
This commit is contained in:

committed by
GitHub

parent
114bd5744f
commit
ccd205bfeb
@@ -43,6 +43,22 @@ concretizer:
|
||||
# (e.g. py-setuptools, cmake etc.)
|
||||
# "full" (experimental): allows separation of the entire build-tool stack (e.g. the entire "cmake" subDAG)
|
||||
strategy: minimal
|
||||
# Maximum number of duplicates in a DAG, when using a strategy that allows duplicates. "default" is the
|
||||
# number used if there isn't a more specific alternative
|
||||
max_dupes:
|
||||
default: 1
|
||||
# Virtuals
|
||||
c: 2
|
||||
cxx: 2
|
||||
fortran: 1
|
||||
# Regular packages
|
||||
cmake: 2
|
||||
gmake: 2
|
||||
py-cython: 2
|
||||
py-flit-core: 2
|
||||
py-setuptools: 2
|
||||
gcc: 2
|
||||
llvm: 2
|
||||
# Option to specify compatibility between operating systems for reuse of compilers and packages
|
||||
# Specified as a key: [list] where the key is the os that is being targeted, and the list contains the OS's
|
||||
# it can reuse. Note this is a directional compatibility so mutual compatibility between two OS's
|
||||
|
Reference in New Issue
Block a user