Add phonies as provider instead of updaing a global map.
Bug: 358425833 Test: Manually compare the generated mk and ninja files. Change-Id: Ie74b620fc680ca2fc0d7836e88361ab3bdb87c49
This commit is contained in:
@@ -26,14 +26,20 @@ type phonyMap map[string]Paths
|
||||
|
||||
var phonyMapLock sync.Mutex
|
||||
|
||||
func getPhonyMap(config Config) phonyMap {
|
||||
type ModulePhonyInfo struct {
|
||||
Phonies map[string]Paths
|
||||
}
|
||||
|
||||
var ModulePhonyProvider = blueprint.NewProvider[ModulePhonyInfo]()
|
||||
|
||||
func getSingletonPhonyMap(config Config) phonyMap {
|
||||
return config.Once(phonyMapOnceKey, func() interface{} {
|
||||
return make(phonyMap)
|
||||
}).(phonyMap)
|
||||
}
|
||||
|
||||
func addPhony(config Config, name string, deps ...Path) {
|
||||
phonyMap := getPhonyMap(config)
|
||||
func addSingletonPhony(config Config, name string, deps ...Path) {
|
||||
phonyMap := getSingletonPhonyMap(config)
|
||||
phonyMapLock.Lock()
|
||||
defer phonyMapLock.Unlock()
|
||||
phonyMap[name] = append(phonyMap[name], deps...)
|
||||
@@ -47,7 +53,15 @@ type phonySingleton struct {
|
||||
var _ SingletonMakeVarsProvider = (*phonySingleton)(nil)
|
||||
|
||||
func (p *phonySingleton) GenerateBuildActions(ctx SingletonContext) {
|
||||
p.phonyMap = getPhonyMap(ctx.Config())
|
||||
p.phonyMap = getSingletonPhonyMap(ctx.Config())
|
||||
ctx.VisitAllModules(func(m Module) {
|
||||
if info, ok := OtherModuleProvider(ctx, m, ModulePhonyProvider); ok {
|
||||
for k, v := range info.Phonies {
|
||||
p.phonyMap[k] = append(p.phonyMap[k], v...)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
p.phonyList = SortedKeys(p.phonyMap)
|
||||
for _, phony := range p.phonyList {
|
||||
p.phonyMap[phony] = SortedUniquePaths(p.phonyMap[phony])
|
||||
|
Reference in New Issue
Block a user