Merge "Deprecating clang Property"

This commit is contained in:
Alix Espino 2022-08-30 17:42:10 +00:00 committed by Gerrit Code Review
commit f9f9ed7cf1
4 changed files with 57 additions and 0 deletions

View file

@ -1619,6 +1619,10 @@ func (c *deviceConfig) ShippingApiLevel() ApiLevel {
return uncheckedFinalApiLevel(apiLevel)
}
func (c *deviceConfig) BuildBrokenClangProperty() bool {
return c.config.productVariables.BuildBrokenClangProperty
}
func (c *deviceConfig) BuildBrokenEnforceSyspropOwner() bool {
return c.config.productVariables.BuildBrokenEnforceSyspropOwner
}

View file

@ -430,6 +430,7 @@ type productVariables struct {
ShippingApiLevel *string `json:",omitempty"`
BuildBrokenClangProperty bool `json:",omitempty"`
BuildBrokenDepfile *bool `json:",omitempty"`
BuildBrokenEnforceSyspropOwner bool `json:",omitempty"`
BuildBrokenTrebleSyspropNeverallow bool `json:",omitempty"`

View file

@ -1900,6 +1900,8 @@ func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
if c.Properties.Clang != nil && *c.Properties.Clang == false {
ctx.PropertyErrorf("clang", "false (GCC) is no longer supported")
} else if c.Properties.Clang != nil && !ctx.DeviceConfig().BuildBrokenClangProperty() {
ctx.PropertyErrorf("clang", "property is deprecated, see Changes.md file")
}
flags := Flags{

View file

@ -4336,3 +4336,53 @@ func TestIncludeDirectoryOrdering(t *testing.T) {
}
}
func TestCcBuildBrokenClangProperty(t *testing.T) {
tests := []struct {
name string
clang bool
BuildBrokenClangProperty bool
err string
}{
{
name: "error when clang is set to false",
clang: false,
err: "is no longer supported",
},
{
name: "error when clang is set to true",
clang: true,
err: "property is deprecated, see Changes.md",
},
{
name: "no error when BuildBrokenClangProperty is explicitly set to true",
clang: true,
BuildBrokenClangProperty: true,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
bp := fmt.Sprintf(`
cc_library {
name: "foo",
clang: %t,
}`, test.clang)
if test.err == "" {
android.GroupFixturePreparers(
prepareForCcTest,
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
if test.BuildBrokenClangProperty {
variables.BuildBrokenClangProperty = test.BuildBrokenClangProperty
}
}),
).RunTestWithBp(t, bp)
} else {
prepareForCcTest.
ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(test.err)).
RunTestWithBp(t, bp)
}
})
}
}