diff options
-rw-r--r-- | android/Android.bp | 1 | ||||
-rw-r--r-- | android/filegroup.go | 25 | ||||
-rw-r--r-- | android/filegroup_test.go | 26 | ||||
-rw-r--r-- | scripts/Android.bp | 6 |
4 files changed, 56 insertions, 2 deletions
diff --git a/android/Android.bp b/android/Android.bp index 65332b2d8..c0a35accd 100644 --- a/android/Android.bp +++ b/android/Android.bp @@ -106,6 +106,7 @@ bootstrap_go_package { "depset_test.go", "deptag_test.go", "expand_test.go", + "filegroup_test.go", "fixture_test.go", "gen_notice_test.go", "license_kind_test.go", diff --git a/android/filegroup.go b/android/filegroup.go index 50356d1c3..a2e69efa4 100644 --- a/android/filegroup.go +++ b/android/filegroup.go @@ -23,13 +23,18 @@ import ( ) func init() { - RegisterModuleType("filegroup", FileGroupFactory) + RegisterFilegroupBuildComponents(InitRegistrationContext) } var PrepareForTestWithFilegroup = FixtureRegisterWithContext(func(ctx RegistrationContext) { - ctx.RegisterModuleType("filegroup", FileGroupFactory) + RegisterFilegroupBuildComponents(ctx) }) +func RegisterFilegroupBuildComponents(ctx RegistrationContext) { + ctx.RegisterModuleType("filegroup", FileGroupFactory) + ctx.RegisterModuleType("filegroup_defaults", FileGroupDefaultsFactory) +} + // IsFilegroup checks that a module is a filegroup type func IsFilegroup(ctx bazel.OtherModuleContext, m blueprint.Module) bool { return ctx.OtherModuleType(m) == "filegroup" @@ -97,6 +102,7 @@ type fileGroupProperties struct { type fileGroup struct { ModuleBase BazelModuleBase + DefaultableModuleBase properties fileGroupProperties srcs Paths } @@ -111,6 +117,7 @@ func FileGroupFactory() Module { module.AddProperties(&module.properties) InitAndroidModule(module) InitBazelModule(module) + InitDefaultableModule(module) return module } @@ -161,3 +168,17 @@ func (fg *fileGroup) MakeVars(ctx MakeVarsModuleContext) { ctx.StrictRaw(makeVar, strings.Join(fg.srcs.Strings(), " ")) } } + +// Defaults +type FileGroupDefaults struct { + ModuleBase + DefaultsModuleBase +} + +func FileGroupDefaultsFactory() Module { + module := &FileGroupDefaults{} + module.AddProperties(&fileGroupProperties{}) + InitDefaultsModule(module) + + return module +} diff --git a/android/filegroup_test.go b/android/filegroup_test.go new file mode 100644 index 000000000..670037d56 --- /dev/null +++ b/android/filegroup_test.go @@ -0,0 +1,26 @@ +package android + +import ( + "testing" +) + +func TestFilegroupDefaults(t *testing.T) { + bp := FixtureAddTextFile("p/Android.bp", ` + filegroup_defaults { + name: "defaults", + visibility: ["//x"], + } + filegroup { + name: "foo", + defaults: ["defaults"], + visibility: ["//y"], + } + `) + result := GroupFixturePreparers( + PrepareForTestWithFilegroup, + PrepareForTestWithDefaults, + PrepareForTestWithVisibility, + bp).RunTest(t) + rules := effectiveVisibilityRules(result.Config, qualifiedModuleName{pkg: "p", name: "foo"}) + AssertDeepEquals(t, "visibility", []string{"//x", "//y"}, rules.Strings()) +} diff --git a/scripts/Android.bp b/scripts/Android.bp index a37d2597b..814bd5753 100644 --- a/scripts/Android.bp +++ b/scripts/Android.bp @@ -203,3 +203,9 @@ sh_binary_host { name: "list_image", src: "list_image.sh", } + +filegroup { + name: "rustfmt.toml", + srcs: ["rustfmt.toml"], + visibility: ["//visibility:public"], +} |