diff options
author | 2023-11-16 17:05:47 -0800 | |
---|---|---|
committer | 2023-11-28 12:37:02 -0800 | |
commit | eae7b36699477c9c781669f553a7c085e415ac1e (patch) | |
tree | 7c19e74a9068e7f638060497f079cdca6ae473d8 /java/base.go | |
parent | 62093cf7fc83d4d002e9b802a5f6292bf7954744 (diff) |
Add container property to aconfig_declarations.
Bug: 311155208
Test: Unit test
Change-Id: I7b187138856d0144203961e82b6dad5e2f8eed9d
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 |