Depend on stubs via @api_surfaces
BUILD files of rdeps should depend on stubs via @api_surfaces
indirection. e.g. instead of depending on
//system/logging/liblog:liblog_stub_libs_current, it should depend on
@api_surfaces//module-libapi/current:liblog. This ensures that the
generated BUILD files are compatible with Multi-tree.
Update the unit tests for this change.
Test: TH
Change-Id: Ibcc36dcfbee7b1973b341485f015e67987564dcc
diff --git a/cc/bp2build.go b/cc/bp2build.go
index 1086130..67a697a 100644
--- a/cc/bp2build.go
+++ b/cc/bp2build.go
@@ -1152,6 +1152,10 @@
}
}
+var (
+ apiSurfaceModuleLibCurrentPackage = "@api_surfaces//" + android.ModuleLibApi.String() + "/current:"
+)
+
func setStubsForDynamicDeps(ctx android.BazelConversionPathContext, axis bazel.ConfigurationAxis,
config string, dynamicLibs bazel.LabelList, dynamicDeps *bazel.LabelListAttribute, ind int) {
depsWithStubs := []bazel.Label{}
@@ -1167,8 +1171,10 @@
stubLibLabels := []bazel.Label{}
for _, l := range depsWithStubs {
- l.Label = l.Label + stubsSuffix
- stubLibLabels = append(stubLibLabels, l)
+ stubLabelInApiSurfaces := bazel.Label{
+ Label: apiSurfaceModuleLibCurrentPackage + l.OriginalModuleName,
+ }
+ stubLibLabels = append(stubLibLabels, stubLabelInApiSurfaces)
}
inApexSelectValue := dynamicDeps.SelectValue(bazel.OsAndInApexAxis, bazel.AndroidAndInApex)
nonApexSelectValue := dynamicDeps.SelectValue(bazel.OsAndInApexAxis, bazel.AndroidAndNonApex)
@@ -1284,8 +1290,10 @@
la.implementationDynamicDeps.Exclude(bazel.OsAndInApexAxis, bazel.AndroidAndNonApex, toRemove)
stubsToRemove := make([]bazel.Label, 0, len(la.usedSystemDynamicDepAsDynamicDep))
for _, lib := range toRemove.Includes {
- lib.Label += stubsSuffix
- stubsToRemove = append(stubsToRemove, lib)
+ stubLabelInApiSurfaces := bazel.Label{
+ Label: apiSurfaceModuleLibCurrentPackage + lib.OriginalModuleName,
+ }
+ stubsToRemove = append(stubsToRemove, stubLabelInApiSurfaces)
}
la.implementationDynamicDeps.Exclude(bazel.OsAndInApexAxis, bazel.AndroidAndInApex, bazel.MakeLabelList(stubsToRemove))
}
diff --git a/cc/library.go b/cc/library.go
index 91960d5..68de233 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -468,7 +468,7 @@
// Add alias for the stub shared_library in @api_surfaces repository
currentModuleLibApiDir := ctx.Config().ApiSurfacesDir(android.ModuleLibApi, "current")
actualLabelInMainWorkspace := bazel.Label{
- Label: fmt.Sprintf("@//%s:%s_stub_libs_current", ctx.ModuleDir(), m.Name()),
+ Label: fmt.Sprintf("@//%s:%s%s", ctx.ModuleDir(), m.Name(), stubsSuffix),
}
ctx.CreateBazelTargetAliasInDir(currentModuleLibApiDir, m.Name(), actualLabelInMainWorkspace)