Bp2build support for runtime_libs

Bug: 213201180
Test: Updated the minimal apex in the build/bazel cl to include runtime_libs so the apex diff test will test it
Change-Id: I10add1895cfa122a370d24196a33ec2dcfafccfc
This commit is contained in:
Cole Faust
2022-08-09 09:50:56 -07:00
parent 852d0c4859
commit 6b29f593ea
8 changed files with 125 additions and 5 deletions

View File

@@ -328,6 +328,8 @@ var (
"libpdx_headers",
"libprocpartition",
"libruy_static",
"libandroidio",
"libandroidio_srcs",
"libserviceutils",
"libstagefright_enc_common",
"libstagefright_foundation_headers",
@@ -487,8 +489,6 @@ var (
"libartd-runtime-gtest", // depends on unconverted modules: libgtest_isolated, libartd-compiler, libdexfiled, libprofiled, libartbased, libartbased-art-gtest
"libdebuggerd_handler", // depends on unconverted module libdebuggerd_handler_core
"libdebuggerd_handler_core", "libdebuggerd_handler_fallback", // depends on unconverted module libdebuggerd
"libdexfile", // depends on unconverted modules: dexfile_operator_srcs, libartbase, libartpalette,
"libdexfile_static", // depends on unconverted modules: libartbase, libdexfile
"libdexfiled", // depends on unconverted modules: dexfile_operator_srcs, libartbased, libartpalette
"libfastdeploy_host", // depends on unconverted modules: libandroidfw, libusb, AdbWinApi
"libgmock_main_ndk", // depends on unconverted modules: libgtest_ndk_c++

View File

@@ -543,3 +543,41 @@ func TestCcBinaryConvertLex(t *testing.T) {
},
})
}
func TestCcBinaryRuntimeLibs(t *testing.T) {
runCcBinaryTests(t, ccBinaryBp2buildTestCase{
description: "cc_binary with runtime libs",
blueprint: `
cc_library {
name: "bar",
srcs: ["b.cc"],
}
{rule_name} {
name: "foo",
srcs: ["a.cc"],
runtime_libs: ["bar"],
}
`,
targets: []testBazelTarget{
{"cc_library_static", "bar_bp2build_cc_library_static", AttrNameToString{
"local_includes": `["."]`,
"srcs": `["b.cc"]`,
"target_compatible_with": `["//build/bazel/platforms/os:android"]`,
},
},
{"cc_library_shared", "bar", AttrNameToString{
"local_includes": `["."]`,
"srcs": `["b.cc"]`,
"target_compatible_with": `["//build/bazel/platforms/os:android"]`,
},
},
{"cc_binary", "foo", AttrNameToString{
"local_includes": `["."]`,
"srcs": `["a.cc"]`,
"runtime_deps": `[":bar"]`,
},
},
},
})
}

View File

@@ -2514,3 +2514,29 @@ func TestCcLibraryConvertLex(t *testing.T) {
})...),
})
}
func TestCCLibraryRuntimeDeps(t *testing.T) {
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
Blueprint: `cc_library_shared {
name: "bar",
}
cc_library {
name: "foo",
runtime_libs: ["foo"],
}`,
ExpectedBazelTargets: []string{
makeBazelTarget("cc_library_shared", "bar", AttrNameToString{
"local_includes": `["."]`,
}),
makeBazelTarget("cc_library_static", "foo_bp2build_cc_library_static", AttrNameToString{
"runtime_deps": `[":foo"]`,
"local_includes": `["."]`,
}),
makeBazelTarget("cc_library_shared", "foo", AttrNameToString{
"runtime_deps": `[":foo"]`,
"local_includes": `["."]`,
}),
},
})
}

View File

@@ -624,3 +624,25 @@ func TestCCLibraryFlagSpaceSplitting(t *testing.T) {
},
})
}
func TestCCLibrarySharedRuntimeDeps(t *testing.T) {
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
Blueprint: `cc_library_shared {
name: "bar",
}
cc_library_shared {
name: "foo",
runtime_libs: ["foo"],
}`,
ExpectedBazelTargets: []string{
makeBazelTarget("cc_library_shared", "bar", AttrNameToString{
"local_includes": `["."]`,
}),
makeBazelTarget("cc_library_shared", "foo", AttrNameToString{
"runtime_deps": `[":foo"]`,
"local_includes": `["."]`,
}),
},
})
}

View File

@@ -15,12 +15,12 @@
package bp2build
import (
"fmt"
"testing"
"android/soong/android"
"android/soong/cc"
"android/soong/genrule"
"fmt"
"testing"
)
const (
@@ -1559,3 +1559,25 @@ func TestCcLibraryStaticStl(t *testing.T) {
})
}
}
func TestCCLibraryStaticRuntimeDeps(t *testing.T) {
runCcLibrarySharedTestCase(t, Bp2buildTestCase{
Blueprint: `cc_library_shared {
name: "bar",
}
cc_library_static {
name: "foo",
runtime_libs: ["foo"],
}`,
ExpectedBazelTargets: []string{
makeBazelTarget("cc_library_shared", "bar", AttrNameToString{
"local_includes": `["."]`,
}),
makeBazelTarget("cc_library_static", "foo", AttrNameToString{
"runtime_deps": `[":foo"]`,
"local_includes": `["."]`,
}),
},
})
}

View File

@@ -617,6 +617,7 @@ func binaryBp2build(ctx android.TopDownMutatorContext, m *Module, typ string) {
Dynamic_deps: baseAttrs.implementationDynamicDeps,
Whole_archive_deps: baseAttrs.wholeArchiveDeps,
System_deps: baseAttrs.systemDynamicDeps,
Runtime_deps: baseAttrs.runtimeDeps,
Local_includes: baseAttrs.localIncludes,
Absolute_includes: baseAttrs.absoluteIncludes,
@@ -667,6 +668,7 @@ type binaryAttributes struct {
Dynamic_deps bazel.LabelListAttribute
Whole_archive_deps bazel.LabelListAttribute
System_deps bazel.LabelListAttribute
Runtime_deps bazel.LabelListAttribute
Local_includes bazel.StringListAttribute
Absolute_includes bazel.StringListAttribute

View File

@@ -52,6 +52,7 @@ type staticOrSharedAttributes struct {
Implementation_dynamic_deps bazel.LabelListAttribute
Whole_archive_deps bazel.LabelListAttribute
Implementation_whole_archive_deps bazel.LabelListAttribute
Runtime_deps bazel.LabelListAttribute
System_dynamic_deps bazel.LabelListAttribute
@@ -710,6 +711,7 @@ type linkerAttributes struct {
implementationDeps bazel.LabelListAttribute
dynamicDeps bazel.LabelListAttribute
implementationDynamicDeps bazel.LabelListAttribute
runtimeDeps bazel.LabelListAttribute
wholeArchiveDeps bazel.LabelListAttribute
implementationWholeArchiveDeps bazel.LabelListAttribute
systemDynamicDeps bazel.LabelListAttribute
@@ -825,6 +827,11 @@ func (la *linkerAttributes) bp2buildForAxisAndConfig(ctx android.BazelConversion
if axisFeatures != nil {
la.features.SetSelectValue(axis, config, axisFeatures)
}
runtimeDeps := android.BazelLabelForModuleDepsExcludes(ctx, props.Runtime_libs, props.Exclude_runtime_libs)
if !runtimeDeps.IsEmpty() {
la.runtimeDeps.SetSelectValue(axis, config, runtimeDeps)
}
}
func (la *linkerAttributes) convertStripProps(ctx android.BazelConversionPathContext, module *Module) {

View File

@@ -319,6 +319,7 @@ func libraryBp2Build(ctx android.TopDownMutatorContext, m *Module) {
Implementation_whole_archive_deps: linkerAttrs.implementationWholeArchiveDeps,
Whole_archive_deps: *linkerAttrs.wholeArchiveDeps.Clone().Append(staticAttrs.Whole_archive_deps),
System_dynamic_deps: *linkerAttrs.systemDynamicDeps.Clone().Append(staticAttrs.System_dynamic_deps),
Runtime_deps: linkerAttrs.runtimeDeps,
sdkAttributes: bp2BuildParseSdkAttributes(m),
}
@@ -335,6 +336,7 @@ func libraryBp2Build(ctx android.TopDownMutatorContext, m *Module) {
Implementation_dynamic_deps: *linkerAttrs.implementationDynamicDeps.Clone().Append(sharedAttrs.Implementation_dynamic_deps),
Whole_archive_deps: *linkerAttrs.wholeArchiveDeps.Clone().Append(sharedAttrs.Whole_archive_deps),
System_dynamic_deps: *linkerAttrs.systemDynamicDeps.Clone().Append(sharedAttrs.System_dynamic_deps),
Runtime_deps: linkerAttrs.runtimeDeps,
sdkAttributes: bp2BuildParseSdkAttributes(m),
}
@@ -2552,6 +2554,7 @@ func sharedOrStaticLibraryBp2Build(ctx android.TopDownMutatorContext, module *Mo
Implementation_whole_archive_deps: linkerAttrs.implementationWholeArchiveDeps,
System_dynamic_deps: linkerAttrs.systemDynamicDeps,
sdkAttributes: bp2BuildParseSdkAttributes(module),
Runtime_deps: linkerAttrs.runtimeDeps,
}
var attrs interface{}