Loading api/api.go +49 −26 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ type defaultsProps struct { } type Bazel_module struct { Label *string Bp2build_available *bool } type bazelProperties struct { Loading @@ -140,6 +141,8 @@ type MergedTxtDefinition struct { ModuleTag string // public, system, module-lib or system-server Scope string // True if there is a bp2build definition for this module Bp2buildDefined bool } func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition) { Loading @@ -152,8 +155,10 @@ func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition) { if txt.Scope != "public" { filename = txt.Scope + "-" + filename } moduleName := ctx.ModuleName() + "-" + filename props := genruleProps{} props.Name = proptools.StringPtr(ctx.ModuleName() + "-" + filename) props.Name = proptools.StringPtr(moduleName) props.Tools = []string{"metalava"} props.Out = []string{filename} props.Cmd = proptools.StringPtr(metalavaCmd + "$(in) --out $(out)") Loading @@ -171,7 +176,20 @@ func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition) { }, } props.Visibility = []string{"//visibility:public"} ctx.CreateModule(genrule.GenRuleFactory, &props, &bp2buildNotAvailable) bazelProps := bazelProperties{ &Bazel_module{ Bp2build_available: proptools.BoolPtr(false), }, } if txt.Bp2buildDefined { moduleDir := ctx.ModuleDir() if moduleDir == android.Bp2BuildTopLevel { moduleDir = "" } label := fmt.Sprintf("//%s:%s", moduleDir, moduleName) bazelProps.Label = &label } ctx.CreateModule(genrule.GenRuleFactory, &props, &bazelProps) } func createMergedAnnotationsFilegroups(ctx android.LoadHookContext, modules, system_server_modules []string) { Loading Loading @@ -301,6 +319,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ tagSuffix := []string{".api.txt}", ".removed-api.txt}"} distFilename := []string{"android.txt", "android-removed.txt"} bp2BuildDefined := []bool{true, false} for i, f := range []string{"current.txt", "removed.txt"} { textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -309,6 +328,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: bootclasspath, ModuleTag: "{.public" + tagSuffix[i], Scope: "public", Bp2buildDefined: bp2BuildDefined[i], }) textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -317,6 +337,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: bootclasspath, ModuleTag: "{.system" + tagSuffix[i], Scope: "system", Bp2buildDefined: bp2BuildDefined[i], }) textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -325,6 +346,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: bootclasspath, ModuleTag: "{.module-lib" + tagSuffix[i], Scope: "module-lib", Bp2buildDefined: bp2BuildDefined[i], }) textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -333,6 +355,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: system_server_classpath, ModuleTag: "{.system-server" + tagSuffix[i], Scope: "system-server", Bp2buildDefined: bp2BuildDefined[i], }) } for _, txt := range textFiles { Loading api/api_test.go +45 −8 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ func runCombinedApisTestCase(t *testing.T, tc bp2build.Bp2buildTestCase) { t.Helper() runCombinedApisTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) { ctx.RegisterModuleType("java_defaults", java.DefaultsFactory) ctx.RegisterModuleType("java_sdk_library", java.SdkLibraryFactory) ctx.RegisterModuleType("filegroup", android.FileGroupFactory) }) } Loading @@ -44,6 +46,33 @@ func TestCombinedApisGeneral(t *testing.T) { bootclasspath: ["bcp"], system_server_classpath: ["ssc"], } java_sdk_library { name: "bcp", srcs: ["a.java", "b.java"], shared_library: false, } java_sdk_library { name: "ssc", srcs: ["a.java", "b.java"], shared_library: false, } filegroup { name: "non-updatable-current.txt", srcs: ["current.txt"], } filegroup { name: "non-updatable-system-current.txt", srcs: ["system-current.txt"], } filegroup { name: "non-updatable-module-lib-current.txt", srcs: ["system-removed.txt"], } filegroup { name: "non-updatable-system-server-current.txt", srcs: ["system-lint-baseline.txt"], } `, Filesystem: map[string]string{ "a/Android.bp": ` Loading @@ -51,27 +80,35 @@ func TestCombinedApisGeneral(t *testing.T) { name: "android.jar_defaults", } `, "api/current.txt": "", "api/removed.txt": "", "api/system-current.txt": "", "api/system-removed.txt": "", "api/test-current.txt": "", "api/test-removed.txt": "", }, StubbedBuildDefinitions: []string{"bcp", "ssc", "non-updatable-current.txt", "non-updatable-system-current.txt", "non-updatable-module-lib-current.txt", "non-updatable-system-server-current.txt"}, ExpectedHandcraftedModules: []string{"foo-current.txt", "foo-system-current.txt", "foo-module-lib-current.txt", "foo-system-server-current.txt"}, ExpectedBazelTargets: []string{ bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-current.txt", bp2build.AttrNameToString{ "scope": `"public"`, "base": `":non-updatable-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":bcp__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-current.txt"`, "deps": `[":bcp"]`, }), bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-system-current.txt", bp2build.AttrNameToString{ "scope": `"system"`, "base": `":non-updatable-system-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":bcp__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-system-current.txt"`, "deps": `[":bcp"]`, }), bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-module-lib-current.txt", bp2build.AttrNameToString{ "scope": `"module-lib"`, "base": `":non-updatable-module-lib-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":bcp__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-module-lib-current.txt"`, "deps": `[":bcp"]`, }), bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-system-server-current.txt", bp2build.AttrNameToString{ "scope": `"system-server"`, "base": `":non-updatable-system-server-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":ssc__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-system-server-current.txt"`, "deps": `[":ssc"]`, }), }, }) Loading Loading
api/api.go +49 −26 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ type defaultsProps struct { } type Bazel_module struct { Label *string Bp2build_available *bool } type bazelProperties struct { Loading @@ -140,6 +141,8 @@ type MergedTxtDefinition struct { ModuleTag string // public, system, module-lib or system-server Scope string // True if there is a bp2build definition for this module Bp2buildDefined bool } func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition) { Loading @@ -152,8 +155,10 @@ func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition) { if txt.Scope != "public" { filename = txt.Scope + "-" + filename } moduleName := ctx.ModuleName() + "-" + filename props := genruleProps{} props.Name = proptools.StringPtr(ctx.ModuleName() + "-" + filename) props.Name = proptools.StringPtr(moduleName) props.Tools = []string{"metalava"} props.Out = []string{filename} props.Cmd = proptools.StringPtr(metalavaCmd + "$(in) --out $(out)") Loading @@ -171,7 +176,20 @@ func createMergedTxt(ctx android.LoadHookContext, txt MergedTxtDefinition) { }, } props.Visibility = []string{"//visibility:public"} ctx.CreateModule(genrule.GenRuleFactory, &props, &bp2buildNotAvailable) bazelProps := bazelProperties{ &Bazel_module{ Bp2build_available: proptools.BoolPtr(false), }, } if txt.Bp2buildDefined { moduleDir := ctx.ModuleDir() if moduleDir == android.Bp2BuildTopLevel { moduleDir = "" } label := fmt.Sprintf("//%s:%s", moduleDir, moduleName) bazelProps.Label = &label } ctx.CreateModule(genrule.GenRuleFactory, &props, &bazelProps) } func createMergedAnnotationsFilegroups(ctx android.LoadHookContext, modules, system_server_modules []string) { Loading Loading @@ -301,6 +319,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ tagSuffix := []string{".api.txt}", ".removed-api.txt}"} distFilename := []string{"android.txt", "android-removed.txt"} bp2BuildDefined := []bool{true, false} for i, f := range []string{"current.txt", "removed.txt"} { textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -309,6 +328,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: bootclasspath, ModuleTag: "{.public" + tagSuffix[i], Scope: "public", Bp2buildDefined: bp2BuildDefined[i], }) textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -317,6 +337,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: bootclasspath, ModuleTag: "{.system" + tagSuffix[i], Scope: "system", Bp2buildDefined: bp2BuildDefined[i], }) textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -325,6 +346,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: bootclasspath, ModuleTag: "{.module-lib" + tagSuffix[i], Scope: "module-lib", Bp2buildDefined: bp2BuildDefined[i], }) textFiles = append(textFiles, MergedTxtDefinition{ TxtFilename: f, Loading @@ -333,6 +355,7 @@ func createMergedTxts(ctx android.LoadHookContext, bootclasspath, system_server_ Modules: system_server_classpath, ModuleTag: "{.system-server" + tagSuffix[i], Scope: "system-server", Bp2buildDefined: bp2BuildDefined[i], }) } for _, txt := range textFiles { Loading
api/api_test.go +45 −8 Original line number Diff line number Diff line Loading @@ -33,6 +33,8 @@ func runCombinedApisTestCase(t *testing.T, tc bp2build.Bp2buildTestCase) { t.Helper() runCombinedApisTestCaseWithRegistrationCtxFunc(t, tc, func(ctx android.RegistrationContext) { ctx.RegisterModuleType("java_defaults", java.DefaultsFactory) ctx.RegisterModuleType("java_sdk_library", java.SdkLibraryFactory) ctx.RegisterModuleType("filegroup", android.FileGroupFactory) }) } Loading @@ -44,6 +46,33 @@ func TestCombinedApisGeneral(t *testing.T) { bootclasspath: ["bcp"], system_server_classpath: ["ssc"], } java_sdk_library { name: "bcp", srcs: ["a.java", "b.java"], shared_library: false, } java_sdk_library { name: "ssc", srcs: ["a.java", "b.java"], shared_library: false, } filegroup { name: "non-updatable-current.txt", srcs: ["current.txt"], } filegroup { name: "non-updatable-system-current.txt", srcs: ["system-current.txt"], } filegroup { name: "non-updatable-module-lib-current.txt", srcs: ["system-removed.txt"], } filegroup { name: "non-updatable-system-server-current.txt", srcs: ["system-lint-baseline.txt"], } `, Filesystem: map[string]string{ "a/Android.bp": ` Loading @@ -51,27 +80,35 @@ func TestCombinedApisGeneral(t *testing.T) { name: "android.jar_defaults", } `, "api/current.txt": "", "api/removed.txt": "", "api/system-current.txt": "", "api/system-removed.txt": "", "api/test-current.txt": "", "api/test-removed.txt": "", }, StubbedBuildDefinitions: []string{"bcp", "ssc", "non-updatable-current.txt", "non-updatable-system-current.txt", "non-updatable-module-lib-current.txt", "non-updatable-system-server-current.txt"}, ExpectedHandcraftedModules: []string{"foo-current.txt", "foo-system-current.txt", "foo-module-lib-current.txt", "foo-system-server-current.txt"}, ExpectedBazelTargets: []string{ bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-current.txt", bp2build.AttrNameToString{ "scope": `"public"`, "base": `":non-updatable-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":bcp__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-current.txt"`, "deps": `[":bcp"]`, }), bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-system-current.txt", bp2build.AttrNameToString{ "scope": `"system"`, "base": `":non-updatable-system-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":bcp__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-system-current.txt"`, "deps": `[":bcp"]`, }), bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-module-lib-current.txt", bp2build.AttrNameToString{ "scope": `"module-lib"`, "base": `":non-updatable-module-lib-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":bcp__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-module-lib-current.txt"`, "deps": `[":bcp"]`, }), bp2build.MakeBazelTargetNoRestrictions("merged_txts", "foo-system-server-current.txt", bp2build.AttrNameToString{ "scope": `"system-server"`, "base": `":non-updatable-system-server-current.txt__BP2BUILD__MISSING__DEP"`, "deps": `[":ssc__BP2BUILD__MISSING__DEP"]`, "base": `":non-updatable-system-server-current.txt"`, "deps": `[":ssc"]`, }), }, }) Loading