Add container property to aconfig_declarations.
Bug: 311155208 Test: Unit test Change-Id: I7b187138856d0144203961e82b6dad5e2f8eed9d
This commit is contained in:
41
java/base.go
41
java/base.go
@@ -25,6 +25,7 @@ import (
|
||||
"github.com/google/blueprint/pathtools"
|
||||
"github.com/google/blueprint/proptools"
|
||||
|
||||
"android/soong/aconfig"
|
||||
"android/soong/android"
|
||||
"android/soong/dexpreopt"
|
||||
"android/soong/java/config"
|
||||
@@ -512,13 +513,8 @@ type Module struct {
|
||||
// or the module should override Stem().
|
||||
stem string
|
||||
|
||||
// Aconfig "cache files" that went directly into this module. Transitive ones are
|
||||
// tracked via JavaInfo.TransitiveAconfigFiles
|
||||
// TODO: Extract to something standalone to propagate tags via GeneratedJavaLibraryModule
|
||||
aconfigIntermediates android.Paths
|
||||
|
||||
// Aconfig files for all transitive deps. Also exposed via JavaInfo
|
||||
transitiveAconfigFiles *android.DepSet[android.Path]
|
||||
// Aconfig files for all transitive deps. Also exposed via TransitiveDeclarationsInfo
|
||||
transitiveAconfigFiles map[string]*android.DepSet[android.Path]
|
||||
}
|
||||
|
||||
func (j *Module) CheckStableSdkVersion(ctx android.BaseModuleContext) error {
|
||||
@@ -1723,7 +1719,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
|
||||
|
||||
ctx.CheckbuildFile(outputFile)
|
||||
|
||||
j.collectTransitiveAconfigFiles(ctx)
|
||||
aconfig.CollectTransitiveAconfigFiles(ctx, &j.transitiveAconfigFiles)
|
||||
|
||||
ctx.SetProvider(JavaInfoProvider, JavaInfo{
|
||||
HeaderJars: android.PathsIfNonNil(j.headerJarFile),
|
||||
@@ -1740,7 +1736,6 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath
|
||||
ExportedPluginClasses: j.exportedPluginClasses,
|
||||
ExportedPluginDisableTurbine: j.exportedDisableTurbine,
|
||||
JacocoReportClassesFile: j.jacocoReportClassesFile,
|
||||
TransitiveAconfigFiles: j.transitiveAconfigFiles,
|
||||
})
|
||||
|
||||
// Save the output file with no relative path so that it doesn't end up in a subdirectory when used as a resource
|
||||
@@ -2081,32 +2076,8 @@ func (j *Module) IsInstallable() bool {
|
||||
return Bool(j.properties.Installable)
|
||||
}
|
||||
|
||||
func (j *Module) collectTransitiveAconfigFiles(ctx android.ModuleContext) {
|
||||
// Aconfig files from this module
|
||||
mine := j.aconfigIntermediates
|
||||
|
||||
// Aconfig files from transitive dependencies
|
||||
fromDeps := []*android.DepSet[android.Path]{}
|
||||
ctx.VisitDirectDeps(func(module android.Module) {
|
||||
dep := ctx.OtherModuleProvider(module, JavaInfoProvider).(JavaInfo)
|
||||
if dep.TransitiveAconfigFiles != nil {
|
||||
fromDeps = append(fromDeps, dep.TransitiveAconfigFiles)
|
||||
}
|
||||
})
|
||||
|
||||
// DepSet containing aconfig files myself and from dependencies
|
||||
j.transitiveAconfigFiles = android.NewDepSet(android.POSTORDER, mine, fromDeps)
|
||||
}
|
||||
|
||||
func (j *Module) AddAconfigIntermediate(path android.Path) {
|
||||
j.aconfigIntermediates = append(j.aconfigIntermediates, path)
|
||||
}
|
||||
|
||||
func (j *Module) getTransitiveAconfigFiles() *android.DepSet[android.Path] {
|
||||
if j.transitiveAconfigFiles == nil {
|
||||
panic(fmt.Errorf("java.Moduile: getTransitiveAconfigFiles called before collectTransitiveAconfigFiles module=%s", j.Name()))
|
||||
}
|
||||
return j.transitiveAconfigFiles
|
||||
func (j *Module) getTransitiveAconfigFiles(container string) []android.Path {
|
||||
return j.transitiveAconfigFiles[container].ToList()
|
||||
}
|
||||
|
||||
type sdkLinkType int
|
||||
|
Reference in New Issue
Block a user