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

Commit 0c9a276d authored by Jingwen Chen's avatar Jingwen Chen
Browse files

bazel apex: Add mixed builds support for <module>_using.txt file.

Test: presubmits
Change-Id: I7203fcccb09f6c93e702550ffa47a4029c3351dd
parent 12140011
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -1903,16 +1903,14 @@ func (a *apexBundle) ProcessBazelQueryResponse(ctx android.ModuleContext) {
	apexType := a.properties.ApexType
	switch apexType {
	case imageApex:
		// TODO(asmundak): Bazel does not create these files yet.
		// b/190817312
		// TODO(b/190817312): Generate the notice file from the apex rule.
		a.htmlGzNotice = android.PathForBazelOut(ctx, "NOTICE.html.gz")
		// b/239081457
		// TODO(b/239081457): Generate the bazel bundle module file from the apex rule.
		a.bundleModuleFile = android.PathForBazelOut(ctx, a.Name()+apexType.suffix()+"-base.zip")
		// b/239081455
		a.nativeApisUsedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, a.Name()+"_using.txt"))
		// b/239081456
		a.nativeApisUsedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, outputs.SymbolsUsedByApex))
		// TODO(b/239081456): Generate the backing.txt file from Bazel.
		a.nativeApisBackedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, a.Name()+"_backing.txt"))
		// b/239084755
		// TODO(b/239084755): Generate the java api using.xml file from Bazel.
		a.javaApisUsedByModuleFile = android.ModuleOutPath(android.PathForBazelOut(ctx, a.Name()+"_using.xml"))
		installSuffix := imageApexSuffix
		if a.isCompressed {
+9 −4
Original line number Diff line number Diff line
@@ -9772,6 +9772,7 @@ apex {
						UnsignedOutput:    "unsigned_out.apex",
						BundleKeyInfo:     []string{"public_key", "private_key"},
						ContainerKeyInfo:  []string{"container_cert", "container_private"},
						SymbolsUsedByApex: "foo_using.txt",

						// unused
						PackageName:  "pkg_name",
@@ -9808,4 +9809,8 @@ apex {
	if w, g := "out/bazel/execroot/__main__/signed_out.apex", ab.outputFile.String(); w != g {
		t.Errorf("Expected output file %q, got %q", w, g)
	}

	if w, g := "out/bazel/execroot/__main__/foo_using.txt", ab.nativeApisUsedByModuleFile.String(); w != g {
		t.Errorf("Expected output file %q, got %q", w, g)
	}
}
+9 −7
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ return json_encode({
    "bundle_key_info": [bundle_key_info.public_key.path, bundle_key_info.private_key.path],
    "container_key_info": [container_key_info.pem.path, container_key_info.pk8.path, container_key_info.key_name],
    "package_name": info.package_name,
    "symbols_used_by_apex": info.symbols_used_by_apex.path,
})`
}

@@ -229,6 +230,7 @@ type ApexInfo struct {
	BundleKeyInfo     []string `json:"bundle_key_info"`
	ContainerKeyInfo  []string `json:"container_key_info"`
	PackageName       string   `json:"package_name"`
	SymbolsUsedByApex string   `json:"symbols_used_by_apex"`
}

// ParseResult returns a value obtained by parsing the result of the request's Starlark function.
+9 −7
Original line number Diff line number Diff line
@@ -148,6 +148,7 @@ func TestGetApexInfoParseResults(t *testing.T) {
				`"bundle_key_info":["foo.pem", "foo.privkey"],` +
				`"container_key_info":["foo.x509.pem", "foo.pk8", "foo"],` +
				`"package_name":"package.name",` +
				`"symbols_used_by_apex": "path/to/my.apex_using.txt",` +
				`"provides_native_libs":[]}`,
			expectedOutput: ApexInfo{
				SignedOutput:      "my.apex",
@@ -157,6 +158,7 @@ func TestGetApexInfoParseResults(t *testing.T) {
				BundleKeyInfo:     []string{"foo.pem", "foo.privkey"},
				ContainerKeyInfo:  []string{"foo.x509.pem", "foo.pk8", "foo"},
				PackageName:       "package.name",
				SymbolsUsedByApex: "path/to/my.apex_using.txt",
			},
		},
	}