diff --git a/apex/apex.go b/apex/apex.go index 66c598c3c..80d961561 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -93,8 +93,14 @@ type apexBundleProperties struct { Multilib apexMultilibProperties // List of boot images that are embedded inside this APEX bundle. + // + // deprecated: Use Bootclasspath_fragments + // TODO(b/177892522): Remove after has been replaced by Bootclasspath_fragments Boot_images []string + // List of bootclasspath fragments that are embedded inside this APEX bundle. + Bootclasspath_fragments []string + // List of java libraries that are embedded inside this APEX bundle. Java_libs []string @@ -748,6 +754,7 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) { // Common-arch dependencies come next commonVariation := ctx.Config().AndroidCommonTarget.Variations() ctx.AddFarVariationDependencies(commonVariation, bootImageTag, a.properties.Boot_images...) + ctx.AddFarVariationDependencies(commonVariation, bootImageTag, a.properties.Bootclasspath_fragments...) ctx.AddFarVariationDependencies(commonVariation, javaLibTag, a.properties.Java_libs...) ctx.AddFarVariationDependencies(commonVariation, bpfTag, a.properties.Bpfs...) ctx.AddFarVariationDependencies(commonVariation, fsTag, a.properties.Filesystems...) diff --git a/java/boot_image.go b/java/boot_image.go index bc73c6d89..8fb893fe3 100644 --- a/java/boot_image.go +++ b/java/boot_image.go @@ -27,17 +27,29 @@ import ( func init() { RegisterBootImageBuildComponents(android.InitRegistrationContext) + // TODO(b/177892522): Remove after has been replaced by bootclasspath_fragments android.RegisterSdkMemberType(&bootImageMemberType{ SdkMemberTypeBase: android.SdkMemberTypeBase{ PropertyName: "boot_images", SupportsSdk: true, }, }) + + android.RegisterSdkMemberType(&bootImageMemberType{ + SdkMemberTypeBase: android.SdkMemberTypeBase{ + PropertyName: "bootclasspath_fragments", + SupportsSdk: true, + }, + }) } func RegisterBootImageBuildComponents(ctx android.RegistrationContext) { + // TODO(b/177892522): Remove after has been replaced by bootclasspath_fragment ctx.RegisterModuleType("boot_image", bootImageFactory) ctx.RegisterModuleType("prebuilt_boot_image", prebuiltBootImageFactory) + + ctx.RegisterModuleType("bootclasspath_fragment", bootImageFactory) + ctx.RegisterModuleType("prebuilt_bootclasspath_fragment", prebuiltBootImageFactory) } type bootImageProperties struct { @@ -172,7 +184,11 @@ func (b *bootImageMemberType) IsInstance(module android.Module) bool { } func (b *bootImageMemberType) AddPrebuiltModule(ctx android.SdkMemberContext, member android.SdkMember) android.BpModule { - return ctx.SnapshotBuilder().AddPrebuiltModule(member, "prebuilt_boot_image") + if b.PropertyName == "boot_images" { + return ctx.SnapshotBuilder().AddPrebuiltModule(member, "prebuilt_boot_image") + } else { + return ctx.SnapshotBuilder().AddPrebuiltModule(member, "prebuilt_bootclasspath_fragment") + } } func (b *bootImageMemberType) CreateVariantPropertiesStruct() android.SdkMemberProperties { diff --git a/java/boot_image_test.go b/java/boot_image_test.go index f3d603dd0..37906ff8d 100644 --- a/java/boot_image_test.go +++ b/java/boot_image_test.go @@ -41,6 +41,18 @@ func TestUnknownBootImage(t *testing.T) { `) } +func TestUnknownBootclasspathFragmentImageName(t *testing.T) { + prepareForTestWithBootImage. + ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern( + `\Qimage_name: Unknown image name "unknown", expected one of art, boot\E`)). + RunTestWithBp(t, ` + bootclasspath_fragment { + name: "unknown-boot-image", + image_name: "unknown", + } + `) +} + func TestUnknownPrebuiltBootImage(t *testing.T) { prepareForTestWithBootImage. ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(