Simplify the detection protocol for packages
Packages can implement “detect_version” to support detection of external instances of a package. This is generally easier than implementing “determine_spec_details”. The API for determine_version is similar: for example you can return “None” to indicate that an executable is not an instance of a package. Users may implement a “determine_variants” method for a package. When doing external detection, executables are grouped by version and each group results in a single invocation of “determine_variants” for the associated spec. The method returns a string specifying the variants for the package. The method may additionally return a dictionary representing extra attributes for the package. These will be stored in the spec yaml and can be retrieved from self.spec.extra_attributes The Spack GCC package has been updated with an implementation of “determine_variants” which adds the following extra attributes to the package: c, cxx, fortran
This commit is contained in:

committed by
Peter Scheibel

parent
193e8333fa
commit
c0d490ffbe
@@ -853,7 +853,7 @@ _spack_external() {
|
||||
then
|
||||
SPACK_COMPREPLY="-h --help"
|
||||
else
|
||||
SPACK_COMPREPLY="find"
|
||||
SPACK_COMPREPLY="find list"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -866,6 +866,10 @@ _spack_external_find() {
|
||||
fi
|
||||
}
|
||||
|
||||
_spack_external_list() {
|
||||
SPACK_COMPREPLY="-h --help"
|
||||
}
|
||||
|
||||
_spack_fetch() {
|
||||
if $list_options
|
||||
then
|
||||
|
Reference in New Issue
Block a user