From 9bef67488d1fabc0b8341a143eed599dfb80cc5d Mon Sep 17 00:00:00 2001 From: Cole Faust Date: Wed, 1 Nov 2023 15:29:09 -0700 Subject: Remove sdkPreSingleton and overlaySingleton These were the only 2 pre-singletons in soong. sdkPreSingleton is totally unused. overlaySingleton can be done during GenerateAndroidBuildActions instead. Test: m nothing --no-skip-soong-tests Change-Id: Ieb5ab92f18cb56be4049c0842f61df8aa02dc52c --- java/android_resources.go | 82 ++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 50 deletions(-) (limited to 'java/android_resources.go') diff --git a/java/android_resources.go b/java/android_resources.go index 8c5908f69..038a260d9 100644 --- a/java/android_resources.go +++ b/java/android_resources.go @@ -21,14 +21,6 @@ import ( "android/soong/android" ) -func init() { - registerOverlayBuildComponents(android.InitRegistrationContext) -} - -func registerOverlayBuildComponents(ctx android.RegistrationContext) { - ctx.RegisterPreSingletonType("overlay", OverlaySingletonFactory) -} - var androidResourceIgnoreFilenames = []string{ ".svn", ".git", @@ -84,7 +76,38 @@ type globbedResourceDir struct { func overlayResourceGlob(ctx android.ModuleContext, a *aapt, dir android.Path) (res []globbedResourceDir, rroDirs []rroDir) { - overlayData := ctx.Config().Get(overlayDataKey).([]overlayGlobResult) + overlayData := ctx.Config().Once(overlayDataKey, func() interface{} { + var overlayData []overlayGlobResult + + appendOverlayData := func(overlayDirs []string, t overlayType) { + for i := range overlayDirs { + // Iterate backwards through the list of overlay directories so that the later, lower-priority + // directories in the list show up earlier in the command line to aapt2. + overlay := overlayDirs[len(overlayDirs)-1-i] + var result overlayGlobResult + result.dir = overlay + result.overlayType = t + + files, err := ctx.GlobWithDeps(filepath.Join(overlay, "**/*"), androidResourceIgnoreFilenames) + if err != nil { + ctx.ModuleErrorf("failed to glob resource dir %q: %s", overlay, err.Error()) + continue + } + var paths android.Paths + for _, f := range files { + if !strings.HasSuffix(f, "/") { + paths = append(paths, android.PathForSource(ctx, f)) + } + } + result.paths = android.PathsToDirectorySortedPaths(paths) + overlayData = append(overlayData, result) + } + } + + appendOverlayData(ctx.Config().DeviceResourceOverlays(), device) + appendOverlayData(ctx.Config().ProductResourceOverlays(), product) + return overlayData + }).([]overlayGlobResult) // Runtime resource overlays (RRO) may be turned on by the product config for some modules rroEnabled := a.IsRROEnforced(ctx) @@ -110,44 +133,3 @@ func overlayResourceGlob(ctx android.ModuleContext, a *aapt, dir android.Path) ( return res, rroDirs } - -func OverlaySingletonFactory() android.Singleton { - return overlaySingleton{} -} - -type overlaySingleton struct{} - -func (overlaySingleton) GenerateBuildActions(ctx android.SingletonContext) { - var overlayData []overlayGlobResult - - appendOverlayData := func(overlayDirs []string, t overlayType) { - for i := range overlayDirs { - // Iterate backwards through the list of overlay directories so that the later, lower-priority - // directories in the list show up earlier in the command line to aapt2. - overlay := overlayDirs[len(overlayDirs)-1-i] - var result overlayGlobResult - result.dir = overlay - result.overlayType = t - - files, err := ctx.GlobWithDeps(filepath.Join(overlay, "**/*"), androidResourceIgnoreFilenames) - if err != nil { - ctx.Errorf("failed to glob resource dir %q: %s", overlay, err.Error()) - continue - } - var paths android.Paths - for _, f := range files { - if !strings.HasSuffix(f, "/") { - paths = append(paths, android.PathForSource(ctx, f)) - } - } - result.paths = android.PathsToDirectorySortedPaths(paths) - overlayData = append(overlayData, result) - } - } - - appendOverlayData(ctx.Config().DeviceResourceOverlays(), device) - appendOverlayData(ctx.Config().ProductResourceOverlays(), product) - ctx.Config().Once(overlayDataKey, func() interface{} { - return overlayData - }) -} -- cgit v1.2.3-59-g8ed1b