Merge "Allow disabling implicit resource_dirs and asset_dirs"
This commit is contained in:
@@ -263,9 +263,9 @@ func pathsForModuleSrcFromFullPath(ctx ModuleContext, paths []string, incDirs bo
|
|||||||
}
|
}
|
||||||
|
|
||||||
// PathsWithOptionalDefaultForModuleSrc returns Paths rooted from the module's
|
// PathsWithOptionalDefaultForModuleSrc returns Paths rooted from the module's
|
||||||
// local source directory. If none are provided, use the default if it exists.
|
// local source directory. If input is nil, use the default if it exists. If input is empty, returns nil.
|
||||||
func PathsWithOptionalDefaultForModuleSrc(ctx ModuleContext, input []string, def string) Paths {
|
func PathsWithOptionalDefaultForModuleSrc(ctx ModuleContext, input []string, def string) Paths {
|
||||||
if len(input) > 0 {
|
if input != nil {
|
||||||
return PathsForModuleSrc(ctx, input)
|
return PathsForModuleSrc(ctx, input)
|
||||||
}
|
}
|
||||||
// Use Glob so that if the default doesn't exist, a dependency is added so that when it
|
// Use Glob so that if the default doesn't exist, a dependency is added so that when it
|
||||||
|
@@ -53,11 +53,13 @@ type aaptProperties struct {
|
|||||||
Aapt_include_all_resources *bool
|
Aapt_include_all_resources *bool
|
||||||
|
|
||||||
// list of directories relative to the Blueprints file containing assets.
|
// list of directories relative to the Blueprints file containing assets.
|
||||||
// Defaults to "assets"
|
// Defaults to ["assets"] if a directory called assets exists. Set to []
|
||||||
|
// to disable the default.
|
||||||
Asset_dirs []string
|
Asset_dirs []string
|
||||||
|
|
||||||
// list of directories relative to the Blueprints file containing
|
// list of directories relative to the Blueprints file containing
|
||||||
// Android resources
|
// Android resources. Defaults to ["res"] if a directory called res exists.
|
||||||
|
// Set to [] to disable the default.
|
||||||
Resource_dirs []string
|
Resource_dirs []string
|
||||||
|
|
||||||
// path to AndroidManifest.xml. If unset, defaults to "AndroidManifest.xml".
|
// path to AndroidManifest.xml. If unset, defaults to "AndroidManifest.xml".
|
||||||
|
@@ -106,6 +106,64 @@ func TestApp(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestResourceDirs(t *testing.T) {
|
||||||
|
testCases := []struct {
|
||||||
|
name string
|
||||||
|
prop string
|
||||||
|
resources []string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "no resource_dirs",
|
||||||
|
prop: "",
|
||||||
|
resources: []string{"res/res/values/strings.xml"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "resource_dirs",
|
||||||
|
prop: `resource_dirs: ["res"]`,
|
||||||
|
resources: []string{"res/res/values/strings.xml"},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "empty resource_dirs",
|
||||||
|
prop: `resource_dirs: []`,
|
||||||
|
resources: nil,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
fs := map[string][]byte{
|
||||||
|
"res/res/values/strings.xml": nil,
|
||||||
|
}
|
||||||
|
|
||||||
|
bp := `
|
||||||
|
android_app {
|
||||||
|
name: "foo",
|
||||||
|
%s
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
for _, testCase := range testCases {
|
||||||
|
t.Run(testCase.name, func(t *testing.T) {
|
||||||
|
config := testConfig(nil)
|
||||||
|
ctx := testContext(config, fmt.Sprintf(bp, testCase.prop), fs)
|
||||||
|
run(t, ctx, config)
|
||||||
|
|
||||||
|
module := ctx.ModuleForTests("foo", "android_common")
|
||||||
|
resourceList := module.MaybeOutput("aapt2/res.list")
|
||||||
|
|
||||||
|
var resources []string
|
||||||
|
if resourceList.Rule != nil {
|
||||||
|
for _, compiledResource := range resourceList.Inputs.Strings() {
|
||||||
|
resources = append(resources, module.Output(compiledResource).Inputs.Strings()...)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !reflect.DeepEqual(resources, testCase.resources) {
|
||||||
|
t.Errorf("expected resource files %q, got %q",
|
||||||
|
testCase.resources, resources)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestEnforceRRO(t *testing.T) {
|
func TestEnforceRRO(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
name string
|
name string
|
||||||
|
Reference in New Issue
Block a user