Merge "Include jacoco in the ART boot image if EMMA_INSTRUMENT_FRAMEWORK=true."
This commit is contained in:
@@ -699,6 +699,12 @@ func (a *apexBundle) DepsMutator(ctx android.BottomUpMutatorContext) {
|
|||||||
ctx.AddFarVariationDependencies(ctx.Config().AndroidCommonTarget.Variations(),
|
ctx.AddFarVariationDependencies(ctx.Config().AndroidCommonTarget.Variations(),
|
||||||
javaLibTag, a.properties.Java_libs...)
|
javaLibTag, a.properties.Java_libs...)
|
||||||
|
|
||||||
|
// With EMMA_INSTRUMENT_FRAMEWORK=true the ART boot image includes jacoco library.
|
||||||
|
if a.artApex && ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") {
|
||||||
|
ctx.AddFarVariationDependencies(ctx.Config().AndroidCommonTarget.Variations(),
|
||||||
|
javaLibTag, "jacocoagent")
|
||||||
|
}
|
||||||
|
|
||||||
if String(a.properties.Key) == "" {
|
if String(a.properties.Key) == "" {
|
||||||
ctx.ModuleErrorf("key is missing")
|
ctx.ModuleErrorf("key is missing")
|
||||||
return
|
return
|
||||||
|
@@ -178,12 +178,6 @@ func skipDexpreoptBootJars(ctx android.PathContext) bool {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func skipDexpreoptArtBootJars(ctx android.BuilderContext) bool {
|
|
||||||
// with EMMA_INSTRUMENT_FRAMEWORK=true ART boot class path libraries have dependencies on framework,
|
|
||||||
// therefore dexpreopt ART libraries cannot be dexpreopted in isolation => no ART boot image
|
|
||||||
return ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK")
|
|
||||||
}
|
|
||||||
|
|
||||||
type dexpreoptBootJars struct {
|
type dexpreoptBootJars struct {
|
||||||
defaultBootImage *bootImage
|
defaultBootImage *bootImage
|
||||||
otherImages []*bootImage
|
otherImages []*bootImage
|
||||||
@@ -193,7 +187,7 @@ type dexpreoptBootJars struct {
|
|||||||
|
|
||||||
// Accessor function for the apex package. Returns nil if dexpreopt is disabled.
|
// Accessor function for the apex package. Returns nil if dexpreopt is disabled.
|
||||||
func DexpreoptedArtApexJars(ctx android.BuilderContext) map[android.ArchType]android.OutputPaths {
|
func DexpreoptedArtApexJars(ctx android.BuilderContext) map[android.ArchType]android.OutputPaths {
|
||||||
if skipDexpreoptBootJars(ctx) || skipDexpreoptArtBootJars(ctx) {
|
if skipDexpreoptBootJars(ctx) {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
return artBootImageConfig(ctx).imagesDeps
|
return artBootImageConfig(ctx).imagesDeps
|
||||||
@@ -222,10 +216,8 @@ func (d *dexpreoptBootJars) GenerateBuildActions(ctx android.SingletonContext) {
|
|||||||
|
|
||||||
// Always create the default boot image first, to get a unique profile rule for all images.
|
// Always create the default boot image first, to get a unique profile rule for all images.
|
||||||
d.defaultBootImage = buildBootImage(ctx, defaultBootImageConfig(ctx))
|
d.defaultBootImage = buildBootImage(ctx, defaultBootImageConfig(ctx))
|
||||||
if !skipDexpreoptArtBootJars(ctx) {
|
// Create boot image for the ART apex (build artifacts are accessed via the global boot image config).
|
||||||
// Create boot image for the ART apex (build artifacts are accessed via the global boot image config).
|
d.otherImages = append(d.otherImages, buildBootImage(ctx, artBootImageConfig(ctx)))
|
||||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, artBootImageConfig(ctx)))
|
|
||||||
}
|
|
||||||
if global.GenerateApexImage {
|
if global.GenerateApexImage {
|
||||||
// Create boot images for the JIT-zygote experiment.
|
// Create boot images for the JIT-zygote experiment.
|
||||||
d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx)))
|
d.otherImages = append(d.otherImages, buildBootImage(ctx, apexBootImageConfig(ctx)))
|
||||||
|
@@ -136,6 +136,10 @@ func genBootImageConfigs(ctx android.PathContext) map[string]*bootImageConfig {
|
|||||||
deviceDir := android.PathForOutput(ctx, ctx.Config().DeviceName())
|
deviceDir := android.PathForOutput(ctx, ctx.Config().DeviceName())
|
||||||
|
|
||||||
artModules := global.ArtApexJars
|
artModules := global.ArtApexJars
|
||||||
|
// With EMMA_INSTRUMENT_FRAMEWORK=true the Core libraries depend on jacoco.
|
||||||
|
if ctx.Config().IsEnvTrue("EMMA_INSTRUMENT_FRAMEWORK") {
|
||||||
|
artModules = append(artModules, "jacocoagent")
|
||||||
|
}
|
||||||
frameworkModules := android.RemoveListFromList(global.BootJars,
|
frameworkModules := android.RemoveListFromList(global.BootJars,
|
||||||
concat(artModules, getJarsFromApexJarPairs(global.UpdatableBootJars)))
|
concat(artModules, getJarsFromApexJarPairs(global.UpdatableBootJars)))
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user