Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a741e884 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Remove sdkPreSingleton and overlaySingleton" into main

parents 9ae2999d 9bef6748
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -78,10 +78,7 @@ func TestManifestMerger(t *testing.T) {
		}
	`

	result := android.GroupFixturePreparers(
		PrepareForTestWithJavaDefaultModules,
		PrepareForTestWithOverlayBuildComponents,
	).RunTestWithBp(t, bp)
	result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, bp)

	manifestMergerRule := result.ModuleForTests("app", "android_common").Rule("manifestMerger")
	android.AssertPathRelativeToTopEquals(t, "main manifest",
@@ -129,10 +126,7 @@ func TestManifestValuesApplicationIdSetsPackageName(t *testing.T) {

	`

	result := android.GroupFixturePreparers(
		PrepareForTestWithJavaDefaultModules,
		PrepareForTestWithOverlayBuildComponents,
	).RunTestWithBp(t, bp)
	result := PrepareForTestWithJavaDefaultModules.RunTestWithBp(t, bp)

	manifestMergerRule := result.ModuleForTests("test", "android_common").Rule("manifestMerger")
	android.AssertStringMatches(t,
+32 −50
Original line number Diff line number Diff line
@@ -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,40 +76,7 @@ type globbedResourceDir struct {
func overlayResourceGlob(ctx android.ModuleContext, a *aapt, dir android.Path) (res []globbedResourceDir,
	rroDirs []rroDir) {

	overlayData := ctx.Config().Get(overlayDataKey).([]overlayGlobResult)

	// Runtime resource overlays (RRO) may be turned on by the product config for some modules
	rroEnabled := a.IsRROEnforced(ctx)

	for _, data := range overlayData {
		files := data.paths.PathsInDirectory(filepath.Join(data.dir, dir.String()))
		if len(files) > 0 {
			overlayModuleDir := android.PathForSource(ctx, data.dir, dir.String())

			// If enforce RRO is enabled for this module and this overlay is not in the
			// exclusion list, ignore the overlay.  The list of ignored overlays will be
			// passed to Make to be turned into an RRO package.
			if rroEnabled && !ctx.Config().EnforceRROExcludedOverlay(overlayModuleDir.String()) {
				rroDirs = append(rroDirs, rroDir{overlayModuleDir, data.overlayType})
			} else {
				res = append(res, globbedResourceDir{
					dir:   overlayModuleDir,
					files: files,
				})
			}
		}
	}

	return res, rroDirs
}

func OverlaySingletonFactory() android.Singleton {
	return overlaySingleton{}
}

type overlaySingleton struct{}

func (overlaySingleton) GenerateBuildActions(ctx android.SingletonContext) {
	overlayData := ctx.Config().Once(overlayDataKey, func() interface{} {
		var overlayData []overlayGlobResult

		appendOverlayData := func(overlayDirs []string, t overlayType) {
@@ -131,7 +90,7 @@ func (overlaySingleton) GenerateBuildActions(ctx android.SingletonContext) {

				files, err := ctx.GlobWithDeps(filepath.Join(overlay, "**/*"), androidResourceIgnoreFilenames)
				if err != nil {
				ctx.Errorf("failed to glob resource dir %q: %s", overlay, err.Error())
					ctx.ModuleErrorf("failed to glob resource dir %q: %s", overlay, err.Error())
					continue
				}
				var paths android.Paths
@@ -147,7 +106,30 @@ func (overlaySingleton) GenerateBuildActions(ctx android.SingletonContext) {

		appendOverlayData(ctx.Config().DeviceResourceOverlays(), device)
		appendOverlayData(ctx.Config().ProductResourceOverlays(), product)
	ctx.Config().Once(overlayDataKey, func() interface{} {
		return overlayData
	}).([]overlayGlobResult)

	// Runtime resource overlays (RRO) may be turned on by the product config for some modules
	rroEnabled := a.IsRROEnforced(ctx)

	for _, data := range overlayData {
		files := data.paths.PathsInDirectory(filepath.Join(data.dir, dir.String()))
		if len(files) > 0 {
			overlayModuleDir := android.PathForSource(ctx, data.dir, dir.String())

			// If enforce RRO is enabled for this module and this overlay is not in the
			// exclusion list, ignore the overlay.  The list of ignored overlays will be
			// passed to Make to be turned into an RRO package.
			if rroEnabled && !ctx.Config().EnforceRROExcludedOverlay(overlayModuleDir.String()) {
				rroDirs = append(rroDirs, rroDir{overlayModuleDir, data.overlayType})
			} else {
				res = append(res, globbedResourceDir{
					dir:   overlayModuleDir,
					files: files,
				})
			}
		}
	}

	return res, rroDirs
}
+0 −3
Original line number Diff line number Diff line
@@ -558,7 +558,6 @@ func TestResourceDirs(t *testing.T) {
		t.Run(testCase.name, func(t *testing.T) {
			result := android.GroupFixturePreparers(
				PrepareForTestWithJavaDefaultModules,
				PrepareForTestWithOverlayBuildComponents,
				fs.AddToFixture(),
			).RunTestWithBp(t, fmt.Sprintf(bp, testCase.prop))

@@ -1283,7 +1282,6 @@ func TestAndroidResourceProcessor(t *testing.T) {

			result := android.GroupFixturePreparers(
				PrepareForTestWithJavaDefaultModules,
				PrepareForTestWithOverlayBuildComponents,
				fs.AddToFixture(),
			).RunTestWithBp(t, bp)

@@ -1566,7 +1564,6 @@ func TestAndroidResourceOverlays(t *testing.T) {
		t.Run(testCase.name, func(t *testing.T) {
			result := android.GroupFixturePreparers(
				PrepareForTestWithJavaDefaultModules,
				PrepareForTestWithOverlayBuildComponents,
				fs.AddToFixture(),
				android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
					variables.DeviceResourceOverlays = deviceResourceOverlays
+0 −4
Original line number Diff line number Diff line
@@ -47,10 +47,6 @@ var prepareForJavaTest = android.GroupFixturePreparers(
	cc.PrepareForTestWithCcBuildComponents,
	// Include all the default java modules.
	PrepareForTestWithDexpreopt,
	PrepareForTestWithOverlayBuildComponents,
	android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) {
		ctx.RegisterPreSingletonType("sdk_versions", sdkPreSingletonFactory)
	}),
)

func TestMain(m *testing.M) {
+0 −2
Original line number Diff line number Diff line
@@ -62,7 +62,6 @@ func TestRuntimeResourceOverlay(t *testing.T) {

	result := android.GroupFixturePreparers(
		PrepareForTestWithJavaDefaultModules,
		PrepareForTestWithOverlayBuildComponents,
		android.FixtureModifyConfig(android.SetKatiEnabledForTests),
		fs.AddToFixture(),
	).RunTestWithBp(t, bp)
@@ -330,7 +329,6 @@ func TestEnforceRRO_propagatesToDependencies(t *testing.T) {
		t.Run(testCase.name, func(t *testing.T) {
			result := android.GroupFixturePreparers(
				PrepareForTestWithJavaDefaultModules,
				PrepareForTestWithOverlayBuildComponents,
				fs.AddToFixture(),
				android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
					variables.ProductResourceOverlays = productResourceOverlays
Loading