Merge "Add ART boot image profile to the ART APEX."
This commit is contained in:
@@ -390,6 +390,13 @@ type BootclasspathFragmentApexContentInfo struct {
|
||||
// Map from the base module name (without prebuilt_ prefix) of a fragment's contents module to the
|
||||
// hidden API encoded dex jar path.
|
||||
contentModuleDexJarPaths bootDexJarByModule
|
||||
|
||||
// Path to the image profile file on host (or empty, if profile is not generated).
|
||||
profilePathOnHost android.Path
|
||||
|
||||
// Install path of the boot image profile if it needs to be installed in the APEX, or empty if not
|
||||
// needed.
|
||||
profileInstallPathInApex string
|
||||
}
|
||||
|
||||
func (i BootclasspathFragmentApexContentInfo) Modules() android.ConfiguredJarList {
|
||||
@@ -418,6 +425,14 @@ func (i BootclasspathFragmentApexContentInfo) DexBootJarPathForContentModule(mod
|
||||
}
|
||||
}
|
||||
|
||||
func (i BootclasspathFragmentApexContentInfo) ProfilePathOnHost() android.Path {
|
||||
return i.profilePathOnHost
|
||||
}
|
||||
|
||||
func (i BootclasspathFragmentApexContentInfo) ProfileInstallPathInApex() string {
|
||||
return i.profileInstallPathInApex
|
||||
}
|
||||
|
||||
func (b *BootclasspathFragmentModule) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Module) bool {
|
||||
tag := ctx.OtherModuleDependencyTag(dep)
|
||||
if IsBootclasspathFragmentContentDepTag(tag) {
|
||||
@@ -579,6 +594,8 @@ func (b *BootclasspathFragmentModule) provideApexContentInfo(ctx android.ModuleC
|
||||
|
||||
if imageConfig != nil {
|
||||
info.modules = imageConfig.modules
|
||||
info.profilePathOnHost = imageConfig.profilePathOnHost
|
||||
info.profileInstallPathInApex = imageConfig.profileInstallPathInApex
|
||||
}
|
||||
|
||||
info.bootImageFilesByArch = bootImageFilesByArch
|
||||
|
@@ -256,6 +256,10 @@ type bootImageConfig struct {
|
||||
// Subdirectory where the image files on device are installed.
|
||||
installDirOnDevice string
|
||||
|
||||
// Install path of the boot image profile if it needs to be installed in the APEX, or empty if not
|
||||
// needed.
|
||||
profileInstallPathInApex string
|
||||
|
||||
// A list of (location, jar) pairs for the Java modules in this image.
|
||||
modules android.ConfiguredJarList
|
||||
|
||||
@@ -272,6 +276,9 @@ type bootImageConfig struct {
|
||||
// Rules which should be used in make to install the outputs.
|
||||
profileInstalls android.RuleBuilderInstalls
|
||||
|
||||
// Path to the image profile file on host (or empty, if profile is not generated).
|
||||
profilePathOnHost android.Path
|
||||
|
||||
// Target-dependent fields.
|
||||
variants []*bootImageVariant
|
||||
}
|
||||
@@ -769,11 +776,14 @@ func bootImageProfileRule(ctx android.ModuleContext, image *bootImageConfig) and
|
||||
FlagForEachArg("--dex-location=", image.getAnyAndroidVariant().dexLocationsDeps).
|
||||
FlagWithOutput("--reference-profile-file=", profile)
|
||||
|
||||
rule.Install(profile, "/system/etc/boot-image.prof")
|
||||
if image == defaultBootImageConfig(ctx) {
|
||||
rule.Install(profile, "/system/etc/boot-image.prof")
|
||||
image.profileInstalls = append(image.profileInstalls, rule.Installs()...)
|
||||
}
|
||||
|
||||
rule.Build("bootJarsProfile", "profile boot jars")
|
||||
|
||||
image.profileInstalls = append(image.profileInstalls, rule.Installs()...)
|
||||
image.profilePathOnHost = profile
|
||||
|
||||
return profile
|
||||
}
|
||||
|
@@ -56,22 +56,20 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
||||
artModules := global.ArtApexJars
|
||||
frameworkModules := global.BootJars.RemoveList(artModules)
|
||||
|
||||
artDirOnHost := "apex/art_boot_images/javalib"
|
||||
artDirOnDevice := "apex/com.android.art/javalib"
|
||||
frameworkSubdir := "system/framework"
|
||||
|
||||
// ART config for the primary boot image in the ART apex.
|
||||
// It includes the Core Libraries.
|
||||
artCfg := bootImageConfig{
|
||||
name: artBootImageName,
|
||||
stem: "boot",
|
||||
installDirOnHost: artDirOnHost,
|
||||
installDirOnDevice: artDirOnDevice,
|
||||
modules: artModules,
|
||||
name: artBootImageName,
|
||||
stem: "boot",
|
||||
installDirOnHost: "apex/art_boot_images/javalib",
|
||||
installDirOnDevice: "apex/com.android.art/javalib",
|
||||
profileInstallPathInApex: "etc/boot-image.prof",
|
||||
modules: artModules,
|
||||
}
|
||||
|
||||
// Framework config for the boot image extension.
|
||||
// It includes framework libraries and depends on the ART config.
|
||||
frameworkSubdir := "system/framework"
|
||||
frameworkCfg := bootImageConfig{
|
||||
extends: &artCfg,
|
||||
name: frameworkBootImageName,
|
||||
|
Reference in New Issue
Block a user