Merge "Add providers support"
This commit is contained in:
@@ -176,6 +176,31 @@ type BaseModuleContext interface {
|
|||||||
// It is intended for use inside the visit functions of Visit* and WalkDeps.
|
// It is intended for use inside the visit functions of Visit* and WalkDeps.
|
||||||
OtherModuleType(m blueprint.Module) string
|
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
|
GetDirectDepsWithTag(tag blueprint.DependencyTag) []Module
|
||||||
|
|
||||||
// GetDirectDepWithTag returns the Module the direct dependency with the specified name, or nil if
|
// 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 {
|
func (b *baseModuleContext) OtherModuleType(m blueprint.Module) string {
|
||||||
return b.bp.OtherModuleType(m)
|
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 {
|
func (b *baseModuleContext) GetDirectDepWithTag(name string, tag blueprint.DependencyTag) blueprint.Module {
|
||||||
return b.bp.GetDirectDepWithTag(name, tag)
|
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
|
// be used to add dependencies on the toVariationName variant using the fromVariationName
|
||||||
// variant.
|
// variant.
|
||||||
CreateAliasVariation(fromVariationName, toVariationName string)
|
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 {
|
type bottomUpMutatorContext struct {
|
||||||
@@ -550,3 +558,7 @@ func (b *bottomUpMutatorContext) AliasVariation(variationName string) {
|
|||||||
func (b *bottomUpMutatorContext) CreateAliasVariation(fromVariationName, toVariationName string) {
|
func (b *bottomUpMutatorContext) CreateAliasVariation(fromVariationName, toVariationName string) {
|
||||||
b.bp.CreateAliasVariation(fromVariationName, toVariationName)
|
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
|
ModuleType(module blueprint.Module) string
|
||||||
BlueprintFile(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{})
|
ModuleErrorf(module blueprint.Module, format string, args ...interface{})
|
||||||
Errorf(format string, args ...interface{})
|
Errorf(format string, args ...interface{})
|
||||||
Failed() bool
|
Failed() bool
|
||||||
|
Reference in New Issue
Block a user