Merge "Add providers support"
This commit is contained in:
commit
f950513579
|
@ -176,6 +176,31 @@ type BaseModuleContext interface {
|
|||
// It is intended for use inside the visit functions of Visit* and WalkDeps.
|
||||
OtherModuleType(m blueprint.Module) string
|
||||
|
||||
// OtherModuleProvider returns the value for a provider for the given module. If the value is
|
||||
// not set it returns the zero value of the type of the provider, so the return value can always
|
||||
// be type asserted to the type of the provider. The value returned may be a deep copy of the
|
||||
// value originally passed to SetProvider.
|
||||
OtherModuleProvider(m blueprint.Module, provider blueprint.ProviderKey) interface{}
|
||||
|
||||
// OtherModuleHasProvider returns true if the provider for the given module has been set.
|
||||
OtherModuleHasProvider(m blueprint.Module, provider blueprint.ProviderKey) bool
|
||||
|
||||
// Provider returns the value for a provider for the current module. If the value is
|
||||
// not set it returns the zero value of the type of the provider, so the return value can always
|
||||
// be type asserted to the type of the provider. It panics if called before the appropriate
|
||||
// mutator or GenerateBuildActions pass for the provider. The value returned may be a deep
|
||||
// copy of the value originally passed to SetProvider.
|
||||
Provider(provider blueprint.ProviderKey) interface{}
|
||||
|
||||
// HasProvider returns true if the provider for the current module has been set.
|
||||
HasProvider(provider blueprint.ProviderKey) bool
|
||||
|
||||
// SetProvider sets the value for a provider for the current module. It panics if not called
|
||||
// during the appropriate mutator or GenerateBuildActions pass for the provider, if the value
|
||||
// is not of the appropriate type, or if the value has already been set. The value should not
|
||||
// be modified after being passed to SetProvider.
|
||||
SetProvider(provider blueprint.ProviderKey, value interface{})
|
||||
|
||||
GetDirectDepsWithTag(tag blueprint.DependencyTag) []Module
|
||||
|
||||
// GetDirectDepWithTag returns the Module the direct dependency with the specified name, or nil if
|
||||
|
@ -1681,6 +1706,21 @@ func (b *baseModuleContext) OtherModuleReverseDependencyVariantExists(name strin
|
|||
func (b *baseModuleContext) OtherModuleType(m blueprint.Module) string {
|
||||
return b.bp.OtherModuleType(m)
|
||||
}
|
||||
func (b *baseModuleContext) OtherModuleProvider(m blueprint.Module, provider blueprint.ProviderKey) interface{} {
|
||||
return b.bp.OtherModuleProvider(m, provider)
|
||||
}
|
||||
func (b *baseModuleContext) OtherModuleHasProvider(m blueprint.Module, provider blueprint.ProviderKey) bool {
|
||||
return b.bp.OtherModuleHasProvider(m, provider)
|
||||
}
|
||||
func (b *baseModuleContext) Provider(provider blueprint.ProviderKey) interface{} {
|
||||
return b.bp.Provider(provider)
|
||||
}
|
||||
func (b *baseModuleContext) HasProvider(provider blueprint.ProviderKey) bool {
|
||||
return b.bp.HasProvider(provider)
|
||||
}
|
||||
func (b *baseModuleContext) SetProvider(provider blueprint.ProviderKey, value interface{}) {
|
||||
b.bp.SetProvider(provider, value)
|
||||
}
|
||||
|
||||
func (b *baseModuleContext) GetDirectDepWithTag(name string, tag blueprint.DependencyTag) blueprint.Module {
|
||||
return b.bp.GetDirectDepWithTag(name, tag)
|
||||
|
|
|
@ -315,6 +315,14 @@ type BottomUpMutatorContext interface {
|
|||
// be used to add dependencies on the toVariationName variant using the fromVariationName
|
||||
// variant.
|
||||
CreateAliasVariation(fromVariationName, toVariationName string)
|
||||
|
||||
// SetVariationProvider sets the value for a provider for the given newly created variant of
|
||||
// the current module, i.e. one of the Modules returned by CreateVariations.. It panics if
|
||||
// not called during the appropriate mutator or GenerateBuildActions pass for the provider,
|
||||
// if the value is not of the appropriate type, or if the module is not a newly created
|
||||
// variant of the current module. The value should not be modified after being passed to
|
||||
// SetVariationProvider.
|
||||
SetVariationProvider(module blueprint.Module, provider blueprint.ProviderKey, value interface{})
|
||||
}
|
||||
|
||||
type bottomUpMutatorContext struct {
|
||||
|
@ -550,3 +558,7 @@ func (b *bottomUpMutatorContext) AliasVariation(variationName string) {
|
|||
func (b *bottomUpMutatorContext) CreateAliasVariation(fromVariationName, toVariationName string) {
|
||||
b.bp.CreateAliasVariation(fromVariationName, toVariationName)
|
||||
}
|
||||
|
||||
func (b *bottomUpMutatorContext) SetVariationProvider(module blueprint.Module, provider blueprint.ProviderKey, value interface{}) {
|
||||
b.bp.SetVariationProvider(module, provider, value)
|
||||
}
|
||||
|
|
|
@ -29,6 +29,16 @@ type SingletonContext interface {
|
|||
ModuleType(module blueprint.Module) string
|
||||
BlueprintFile(module blueprint.Module) string
|
||||
|
||||
// ModuleProvider returns the value, if any, for the provider for a module. If the value for the
|
||||
// provider was not set it returns the zero value of the type of the provider, which means the
|
||||
// return value can always be type-asserted to the type of the provider. The return value should
|
||||
// always be considered read-only. It panics if called before the appropriate mutator or
|
||||
// GenerateBuildActions pass for the provider on the module.
|
||||
ModuleProvider(module blueprint.Module, provider blueprint.ProviderKey) interface{}
|
||||
|
||||
// ModuleHasProvider returns true if the provider for the given module has been set.
|
||||
ModuleHasProvider(module blueprint.Module, provider blueprint.ProviderKey) bool
|
||||
|
||||
ModuleErrorf(module blueprint.Module, format string, args ...interface{})
|
||||
Errorf(format string, args ...interface{})
|
||||
Failed() bool
|
||||
|
|
Loading…
Reference in New Issue