diff --git a/bp2build/cc_library_conversion_test.go b/bp2build/cc_library_conversion_test.go index 277d18793..7ea1c1c48 100644 --- a/bp2build/cc_library_conversion_test.go +++ b/bp2build/cc_library_conversion_test.go @@ -3035,7 +3035,7 @@ cc_library { }`, ExpectedBazelTargets: makeCcLibraryTargets("foolib", AttrNameToString{ "implementation_dynamic_deps": `select({ - "//build/bazel/rules/apex:android-in_apex": [":barlib_stub_libs_current"], + "//build/bazel/rules/apex:android-in_apex": ["@api_surfaces//module-libapi/current:barlib"], "//conditions:default": [":barlib"], })`, "local_includes": `["."]`, @@ -3088,8 +3088,8 @@ cc_library { "//build/bazel/platforms/os:linux_musl": [":quxlib"], "//build/bazel/platforms/os:windows": [":quxlib"], "//build/bazel/rules/apex:android-in_apex": [ - ":barlib_stub_libs_current", - ":quxlib_stub_libs_current", + "@api_surfaces//module-libapi/current:barlib", + "@api_surfaces//module-libapi/current:quxlib", ], "//conditions:default": [ ":barlib", @@ -4130,11 +4130,11 @@ cc_library { ExpectedBazelTargets: []string{ MakeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{ "implementation_dynamic_deps": `select({ - "//build/bazel/rules/apex:android-in_apex": [":barlib_stub_libs_current"], + "//build/bazel/rules/apex:android-in_apex": ["@api_surfaces//module-libapi/current:barlib"], "//conditions:default": [":barlib"], })`, "dynamic_deps": `select({ - "//build/bazel/rules/apex:android-in_apex": [":bazlib_stub_libs_current"], + "//build/bazel/rules/apex:android-in_apex": ["@api_surfaces//module-libapi/current:bazlib"], "//conditions:default": [":bazlib"], })`, "local_includes": `["."]`, @@ -4142,11 +4142,11 @@ cc_library { }), MakeBazelTarget("cc_library_shared", "foo", AttrNameToString{ "implementation_dynamic_deps": `select({ - "//build/bazel/rules/apex:android-in_apex": [":barlib_stub_libs_current"], + "//build/bazel/rules/apex:android-in_apex": ["@api_surfaces//module-libapi/current:barlib"], "//conditions:default": [":barlib"], })`, "dynamic_deps": `select({ - "//build/bazel/rules/apex:android-in_apex": [":bazlib_stub_libs_current"], + "//build/bazel/rules/apex:android-in_apex": ["@api_surfaces//module-libapi/current:bazlib"], "//conditions:default": [":bazlib"], })`, "local_includes": `["."]`, diff --git a/bp2build/cc_library_static_conversion_test.go b/bp2build/cc_library_static_conversion_test.go index d16c5cc85..7c1803712 100644 --- a/bp2build/cc_library_static_conversion_test.go +++ b/bp2build/cc_library_static_conversion_test.go @@ -1553,7 +1553,7 @@ cc_library_static { }), MakeBazelTarget("cc_library_static", "keep_with_stubs", AttrNameToString{ "implementation_dynamic_deps": `select({ - "//build/bazel/rules/apex:android-in_apex": [":libm_stub_libs_current"], + "//build/bazel/rules/apex:android-in_apex": ["@api_surfaces//module-libapi/current:libm"], "//conditions:default": [":libm"], })`, "system_dynamic_deps": `[]`, diff --git a/cc/bp2build.go b/cc/bp2build.go index 108613061..67a697aac 100644 --- a/cc/bp2build.go +++ b/cc/bp2build.go @@ -1152,6 +1152,10 @@ func (la *linkerAttributes) bp2buildForAxisAndConfig(ctx android.BazelConversion } } +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 @@ func setStubsForDynamicDeps(ctx android.BazelConversionPathContext, axis bazel.C 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 @@ func (la *linkerAttributes) finalize(ctx android.BazelConversionPathContext) { 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 91960d515..68de233b4 100644 --- a/cc/library.go +++ b/cc/library.go @@ -468,7 +468,7 @@ func createStubsBazelTargetIfNeeded(ctx android.TopDownMutatorContext, m *Module // 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)