diff options
author | 2023-11-01 15:29:09 -0700 | |
---|---|---|
committer | 2023-11-01 15:29:09 -0700 | |
commit | 9bef67488d1fabc0b8341a143eed599dfb80cc5d (patch) | |
tree | ad7db83d0c617ee3379724a50eacfd0c9e82b0cb /java/android_resources.go | |
parent | eb852927d4b8579f1b395e5afb2cacf2c76a087e (diff) |
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
Diffstat (limited to 'java/android_resources.go')
-rw-r--r-- | java/android_resources.go | 82 |
1 files changed, 32 insertions, 50 deletions
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 - }) -} |