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

Commit 61bf3646 authored by Christopher Parsons's avatar Christopher Parsons Committed by Gerrit Code Review
Browse files

Merge "assign labels to merged_txt modules with defs" into main

parents 90693766 3b7e34ba
Loading
Loading
Loading
Loading
+49 −26
Original line number Diff line number Diff line
@@ -114,6 +114,7 @@ type defaultsProps struct {
}

type Bazel_module struct {
	Label              *string
	Bp2build_available *bool
}
type bazelProperties struct {
@@ -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) {
@@ -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)")
@@ -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) {
@@ -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,
@@ -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,
@@ -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,
@@ -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,
@@ -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 {
+45 −8
Original line number Diff line number Diff line
@@ -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)
	})
}

@@ -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": `
@@ -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"]`,
			}),
		},
	})