Loading apex/apex.go +18 −0 Original line number Diff line number Diff line Loading @@ -1702,6 +1702,9 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { filesInfo = append(filesInfo, af) } } // Track transitive dependencies. return true } case javaLibTag: switch child.(type) { Loading Loading @@ -1910,6 +1913,21 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { filesInfo = append(filesInfo, af) return true // track transitive dependencies } } else if java.IsbootImageContentDepTag(depTag) { // Add the contents of the boot image to the apex. switch child.(type) { case *java.Library, *java.SdkLibrary: af := apexFileForJavaModule(ctx, child.(javaModule)) if !af.ok() { ctx.PropertyErrorf("boot_images", "boot image content %q is not configured to be compiled into dex", depName) return false } filesInfo = append(filesInfo, af) return true // track transitive dependencies default: ctx.PropertyErrorf("boot_images", "boot image content %q of type %q is not supported", depName, ctx.OtherModuleType(child)) } } else if _, ok := depTag.(android.CopyDirectlyInAnyApexTag); ok { // nothing } else if am.CanHaveApexVariants() && am.IsInstallableToApex() { Loading apex/boot_image_test.go +9 −4 Original line number Diff line number Diff line Loading @@ -177,8 +177,10 @@ func TestBootImageInArtApex(t *testing.T) { boot_images: [ "mybootimage", ], // bar (like foo) should be transitively included in this apex because it is part of the // mybootimage boot_image. However, it is kept here to ensure that the apex dedups the files // correctly. java_libs: [ "foo", "bar", ], updatable: false, Loading Loading @@ -247,7 +249,6 @@ func TestBootImageInArtApex(t *testing.T) { java.CheckModuleDependencies(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{ `bar`, `com.android.art.key`, `foo`, `mybootimage`, }) } Loading Loading @@ -365,8 +366,12 @@ func TestBootImageContentsNoName(t *testing.T) { } `) // The apex is empty because the contents of boot_image are not transitively included, yet! ensureExactContents(t, result.TestContext, "myapex", "android_common_myapex_image", []string{}) ensureExactContents(t, result.TestContext, "myapex", "android_common_myapex_image", []string{ // This does not include art, oat or vdex files as they are only included for the art boot // image. "javalib/bar.jar", "javalib/foo.jar", }) java.CheckModuleDependencies(t, result.TestContext, "myapex", "android_common_myapex_image", []string{ `myapex.key`, Loading java/boot_image.go +6 −2 Original line number Diff line number Diff line Loading @@ -70,6 +70,10 @@ var bootImageContentDepTag = bootImageContentDependencyTag{} var _ android.ExcludeFromVisibilityEnforcementTag = bootImageContentDepTag func IsbootImageContentDepTag(tag blueprint.DependencyTag) bool { return tag == bootImageContentDepTag } type bootImageProperties struct { // The name of the image this represents. // Loading Loading @@ -182,8 +186,8 @@ func (i BootImageInfo) AndroidBootImageFilesByArchType() map[android.ArchType]an func (b *BootImageModule) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool { tag := ctx.OtherModuleDependencyTag(dep) if tag == bootImageContentDepTag { // Boot image contents are not automatically added to apex, yet. return false // Boot image contents are automatically added to apex. return true } if android.IsMetaDependencyTag(tag) { // Cross-cutting metadata dependencies are metadata. Loading Loading
apex/apex.go +18 −0 Original line number Diff line number Diff line Loading @@ -1702,6 +1702,9 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { filesInfo = append(filesInfo, af) } } // Track transitive dependencies. return true } case javaLibTag: switch child.(type) { Loading Loading @@ -1910,6 +1913,21 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { filesInfo = append(filesInfo, af) return true // track transitive dependencies } } else if java.IsbootImageContentDepTag(depTag) { // Add the contents of the boot image to the apex. switch child.(type) { case *java.Library, *java.SdkLibrary: af := apexFileForJavaModule(ctx, child.(javaModule)) if !af.ok() { ctx.PropertyErrorf("boot_images", "boot image content %q is not configured to be compiled into dex", depName) return false } filesInfo = append(filesInfo, af) return true // track transitive dependencies default: ctx.PropertyErrorf("boot_images", "boot image content %q of type %q is not supported", depName, ctx.OtherModuleType(child)) } } else if _, ok := depTag.(android.CopyDirectlyInAnyApexTag); ok { // nothing } else if am.CanHaveApexVariants() && am.IsInstallableToApex() { Loading
apex/boot_image_test.go +9 −4 Original line number Diff line number Diff line Loading @@ -177,8 +177,10 @@ func TestBootImageInArtApex(t *testing.T) { boot_images: [ "mybootimage", ], // bar (like foo) should be transitively included in this apex because it is part of the // mybootimage boot_image. However, it is kept here to ensure that the apex dedups the files // correctly. java_libs: [ "foo", "bar", ], updatable: false, Loading Loading @@ -247,7 +249,6 @@ func TestBootImageInArtApex(t *testing.T) { java.CheckModuleDependencies(t, result.TestContext, "com.android.art", "android_common_com.android.art_image", []string{ `bar`, `com.android.art.key`, `foo`, `mybootimage`, }) } Loading Loading @@ -365,8 +366,12 @@ func TestBootImageContentsNoName(t *testing.T) { } `) // The apex is empty because the contents of boot_image are not transitively included, yet! ensureExactContents(t, result.TestContext, "myapex", "android_common_myapex_image", []string{}) ensureExactContents(t, result.TestContext, "myapex", "android_common_myapex_image", []string{ // This does not include art, oat or vdex files as they are only included for the art boot // image. "javalib/bar.jar", "javalib/foo.jar", }) java.CheckModuleDependencies(t, result.TestContext, "myapex", "android_common_myapex_image", []string{ `myapex.key`, Loading
java/boot_image.go +6 −2 Original line number Diff line number Diff line Loading @@ -70,6 +70,10 @@ var bootImageContentDepTag = bootImageContentDependencyTag{} var _ android.ExcludeFromVisibilityEnforcementTag = bootImageContentDepTag func IsbootImageContentDepTag(tag blueprint.DependencyTag) bool { return tag == bootImageContentDepTag } type bootImageProperties struct { // The name of the image this represents. // Loading Loading @@ -182,8 +186,8 @@ func (i BootImageInfo) AndroidBootImageFilesByArchType() map[android.ArchType]an func (b *BootImageModule) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool { tag := ctx.OtherModuleDependencyTag(dep) if tag == bootImageContentDepTag { // Boot image contents are not automatically added to apex, yet. return false // Boot image contents are automatically added to apex. return true } if android.IsMetaDependencyTag(tag) { // Cross-cutting metadata dependencies are metadata. Loading