summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/bazel_paths.go5
-rw-r--r--apex/apex.go6
-rw-r--r--apex/apex_test.go5
3 files changed, 15 insertions, 1 deletions
diff --git a/android/bazel_paths.go b/android/bazel_paths.go
index b2ea22f89..3b159d3eb 100644
--- a/android/bazel_paths.go
+++ b/android/bazel_paths.go
@@ -458,6 +458,11 @@ func bp2buildModuleLabel(ctx BazelConversionContext, module blueprint.Module) st
return fmt.Sprintf("//%s:%s", moduleDir, moduleName)
}
+// ModuleFromBazelLabel reverses the logic in bp2buildModuleLabel
+func ModuleFromBazelLabel(label string) string {
+ return strings.Split(label, ":")[1]
+}
+
// BazelOutPath is a Bazel output path compatible to be used for mixed builds within Soong/Ninja.
type BazelOutPath struct {
OutputPath
diff --git a/apex/apex.go b/apex/apex.go
index 01e4f1222..36ce658ed 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1906,6 +1906,12 @@ func (a *apexBundle) ProcessBazelQueryResponse(ctx android.ModuleContext) {
a.containerCertificateFile = android.PathForBazelOut(ctx, outputs.ContainerKeyInfo[0])
a.containerPrivateKeyFile = android.PathForBazelOut(ctx, outputs.ContainerKeyInfo[1])
+ // Ensure ApexInfo.RequiresLibs are installed as part of a bundle build
+ for _, bazelLabel := range outputs.RequiresLibs {
+ // convert Bazel label back to Soong module name
+ a.requiredDeps = append(a.requiredDeps, android.ModuleFromBazelLabel(bazelLabel))
+ }
+
apexType := a.properties.ApexType
switch apexType {
case imageApex:
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 1f2be357b..c0bdfc446 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -9835,11 +9835,11 @@ apex {
JavaSymbolsUsedByApex: "foo_using.xml",
BundleFile: "apex_bundle.zip",
InstalledFiles: "installed-files.txt",
+ RequiresLibs: []string{"//path/c:c", "//path/d:d"},
// unused
PackageName: "pkg_name",
ProvidesLibs: []string{"a", "b"},
- RequiresLibs: []string{"c", "d"},
},
},
}
@@ -9895,4 +9895,7 @@ apex {
if w := "$(call dist-for-goals,checkbuild,out/bazel/execroot/__main__/installed-files.txt:foo-installed-files.txt)"; !strings.Contains(data, w) {
t.Errorf("Expected %q in androidmk data, but did not find %q", w, data)
}
+ if w := "LOCAL_REQUIRED_MODULES := c d"; !strings.Contains(data, w) {
+ t.Errorf("Expected %q in androidmk data, but did not find it in %q", w, data)
+ }
}