diff options
Diffstat (limited to 'java/base.go')
-rw-r--r-- | java/base.go | 41 |
1 files changed, 6 insertions, 35 deletions
diff --git a/java/base.go b/java/base.go index fdc164e11..3bbae2eed 100644 --- a/java/base.go +++ b/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 |