diff --git a/apex/apex.go b/apex/apex.go index 0a785f3d0..e5cee7286 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -3270,7 +3270,7 @@ type bazelApexBundleAttributes struct { Updatable bazel.BoolAttribute Installable bazel.BoolAttribute Native_shared_libs bazel.LabelListAttribute - Binaries bazel.StringListAttribute + Binaries bazel.LabelListAttribute Prebuilts bazel.LabelListAttribute } @@ -3329,8 +3329,8 @@ func apexBundleBp2BuildInternal(ctx android.TopDownMutatorContext, module *apexB prebuiltsLabelList := android.BazelLabelForModuleDeps(ctx, prebuilts) prebuiltsLabelListAttribute := bazel.MakeLabelListAttribute(prebuiltsLabelList) - binaries := module.properties.ApexNativeDependencies.Binaries - binariesStringListAttribute := bazel.MakeStringListAttribute(binaries) + binaries := android.BazelLabelForModuleDeps(ctx, module.properties.ApexNativeDependencies.Binaries) + binariesLabelListAttribute := bazel.MakeLabelListAttribute(binaries) var updatableAttribute bazel.BoolAttribute if module.properties.Updatable != nil { @@ -3352,7 +3352,7 @@ func apexBundleBp2BuildInternal(ctx android.TopDownMutatorContext, module *apexB Updatable: updatableAttribute, Installable: installableAttribute, Native_shared_libs: nativeSharedLibsLabelListAttribute, - Binaries: binariesStringListAttribute, + Binaries: binariesLabelListAttribute, Prebuilts: prebuiltsLabelListAttribute, } diff --git a/bp2build/apex_conversion_test.go b/bp2build/apex_conversion_test.go index 1a23db700..64440dfa3 100644 --- a/bp2build/apex_conversion_test.go +++ b/bp2build/apex_conversion_test.go @@ -19,6 +19,7 @@ import ( "android/soong/apex" "android/soong/cc" "android/soong/java" + "android/soong/sh" "testing" ) @@ -32,6 +33,8 @@ func registerApexModuleTypes(ctx android.RegistrationContext) { // CC module types needed as they can be APEX dependencies cc.RegisterCCBuildComponents(ctx) + ctx.RegisterModuleType("sh_binary", sh.ShBinaryFactory) + ctx.RegisterModuleType("cc_binary", cc.BinaryFactory) ctx.RegisterModuleType("cc_library", cc.LibraryFactory) ctx.RegisterModuleType("apex_key", apex.ApexKeyFactory) ctx.RegisterModuleType("android_app_certificate", java.AndroidAppCertificateFactory) @@ -40,60 +43,63 @@ func registerApexModuleTypes(ctx android.RegistrationContext) { func TestApexBundleSimple(t *testing.T) { runApexTestCase(t, bp2buildTestCase{ - description: "apex - simple example", + description: "apex - example with all props", moduleTypeUnderTest: "apex", moduleTypeUnderTestFactory: apex.BundleFactory, moduleTypeUnderTestBp2BuildMutator: apex.ApexBundleBp2Build, filesystem: map[string]string{}, blueprint: ` apex_key { - name: "com.android.apogee.key", - public_key: "com.android.apogee.avbpubkey", - private_key: "com.android.apogee.pem", + name: "com.android.apogee.key", + public_key: "com.android.apogee.avbpubkey", + private_key: "com.android.apogee.pem", bazel_module: { bp2build_available: false }, } android_app_certificate { - name: "com.android.apogee.certificate", - certificate: "com.android.apogee", - bazel_module: { bp2build_available: false }, -} - -cc_library { - name: "native_shared_lib_1", + name: "com.android.apogee.certificate", + certificate: "com.android.apogee", bazel_module: { bp2build_available: false }, } cc_library { - name: "native_shared_lib_2", + name: "native_shared_lib_1", + bazel_module: { bp2build_available: false }, +} + +cc_library { + name: "native_shared_lib_2", bazel_module: { bp2build_available: false }, } // TODO(b/194878861): Add bp2build support for prebuilt_etc cc_library { - name: "pretend_prebuilt_1", - bazel_module: { bp2build_available: false }, + name: "pretend_prebuilt_1", + bazel_module: { bp2build_available: false }, } // TODO(b/194878861): Add bp2build support for prebuilt_etc cc_library { - name: "pretend_prebuilt_2", - bazel_module: { bp2build_available: false }, + name: "pretend_prebuilt_2", + bazel_module: { bp2build_available: false }, } filegroup { name: "com.android.apogee-file_contexts", - srcs: [ - "com.android.apogee-file_contexts", - ], - bazel_module: { bp2build_available: false }, + srcs: [ + "com.android.apogee-file_contexts", + ], + bazel_module: { bp2build_available: false }, } +cc_binary { name: "cc_binary_1", bazel_module: { bp2build_available: false } } +sh_binary { name: "sh_binary_2", bazel_module: { bp2build_available: false } } + apex { name: "com.android.apogee", manifest: "apogee_manifest.json", androidManifest: "ApogeeAndroidManifest.xml", - file_contexts: "com.android.apogee-file_contexts", + file_contexts: "com.android.apogee-file_contexts", min_sdk_version: "29", key: "com.android.apogee.key", certificate: "com.android.apogee.certificate", @@ -104,8 +110,8 @@ apex { "native_shared_lib_2", ], binaries: [ - "binary_1", - "binary_2", + "cc_binary_1", + "sh_binary_2", ], prebuilts: [ "pretend_prebuilt_1", @@ -117,8 +123,8 @@ apex { makeBazelTarget("apex", "com.android.apogee", attrNameToString{ "android_manifest": `"ApogeeAndroidManifest.xml"`, "binaries": `[ - "binary_1", - "binary_2", + ":cc_binary_1", + ":sh_binary_2", ]`, "certificate": `":com.android.apogee.certificate"`, "file_contexts": `":com.android.apogee-file_contexts"`,