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

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

Merge "Revert^2 "Set the appropriate deps property for the soong generated fs modules"" into main

parents 9be19cc8 29e2d062
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -113,6 +113,10 @@ type Module interface {
	VintfFragmentModuleNames(ctx ConfigurableEvaluatorContext) []string

	ConfigurableEvaluator(ctx ConfigurableEvaluatorContext) proptools.ConfigurableEvaluator

	// The usage of this method is experimental and should not be used outside of fsgen package.
	// This will be removed once product packaging migration to Soong is complete.
	DecodeMultilib(ctx ConfigContext) (string, string)
}

// Qualified id for a module
@@ -2282,6 +2286,10 @@ func (m *ModuleBase) IsNativeBridgeSupported() bool {
	return proptools.Bool(m.commonProperties.Native_bridge_supported)
}

func (m *ModuleBase) DecodeMultilib(ctx ConfigContext) (string, string) {
	return decodeMultilib(ctx, m)
}

type ConfigContext interface {
	Config() Config
}
+4 −0
Original line number Diff line number Diff line
@@ -201,3 +201,7 @@ func (m ModuleProxy) VintfFragmentModuleNames(ctx ConfigurableEvaluatorContext)
func (m ModuleProxy) ConfigurableEvaluator(ctx ConfigurableEvaluatorContext) proptools.ConfigurableEvaluator {
	panic("method is not implemented on ModuleProxy")
}

func (m ModuleProxy) DecodeMultilib(ctx ConfigContext) (string, string) {
	panic("method is not implemented on ModuleProxy")
}
+9 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ func init() {
	AddNeverAllowRules(createProhibitHeaderOnlyRule())
	AddNeverAllowRules(createLimitNdkExportRule()...)
	AddNeverAllowRules(createLimitDirgroupRule()...)
	AddNeverAllowRules(createFilesystemIsAutoGeneratedRule())
}

// Add a NeverAllow rule to the set of rules to apply.
@@ -293,6 +294,14 @@ func createLimitDirgroupRule() []Rule {
	}
}

func createFilesystemIsAutoGeneratedRule() Rule {
	return NeverAllow().
		NotIn("build/soong/fsgen").
		ModuleType("filesystem", "android_system_image").
		WithMatcher("is_auto_generated", isSetMatcherInstance).
		Because("is_auto_generated property is only allowed for filesystem modules in build/soong/fsgen directory")
}

func neverallowMutator(ctx BottomUpMutatorContext) {
	m, ok := ctx.Module().(Module)
	if !ok {
+16 −0
Original line number Diff line number Diff line
@@ -359,6 +359,21 @@ var neverallowTests = []struct {
			`headers_only can only be used for generating framework-minus-apex headers for non-updatable modules`,
		},
	},
	// Test for the rule restricting use of is_auto_generated
	{
		name: `"is_auto_generated" outside allowed directory`,
		fs: map[string][]byte{
			"a/b/Android.bp": []byte(`
				filesystem {
					name: "baaz",
					is_auto_generated: true,
				}
			`),
		},
		expectedErrors: []string{
			`is_auto_generated property is only allowed for filesystem modules in build/soong/fsgen directory`,
		},
	},
}

var prepareForNeverAllowTest = GroupFixturePreparers(
@@ -367,6 +382,7 @@ var prepareForNeverAllowTest = GroupFixturePreparers(
		ctx.RegisterModuleType("java_library", newMockJavaLibraryModule)
		ctx.RegisterModuleType("java_library_host", newMockJavaLibraryModule)
		ctx.RegisterModuleType("java_device_for_host", newMockJavaLibraryModule)
		ctx.RegisterModuleType("filesystem", newMockFilesystemModule)
	}),
)

+3 −2
Original line number Diff line number Diff line
@@ -2100,6 +2100,7 @@ func (p *mockLibraryModule) GenerateAndroidBuildActions(ModuleContext) {
type mockFilesystemModuleProperties struct {
	Partition_type    *string
	Deps              []string
	Is_auto_generated *bool
}

type mockFilesystemModule struct {
Loading