Merge "Move generateUpdatableBcpPackagesRule to platform_bootclasspath" am: e084f1d717 am: b72a9487b8

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1686154

Change-Id: I23c5d58bc071017b40a4c6988e9550e5ab102ef6
This commit is contained in:
Paul Duffin 2021-04-29 12:53:01 +00:00 committed by Automerger Merge Worker
commit ae23514b50
2 changed files with 7 additions and 30 deletions

View File

@ -431,9 +431,6 @@ func (d *dexpreoptBootJars) GenerateSingletonBuildActions(ctx android.SingletonC
defaultImageConfig := defaultBootImageConfig(ctx)
profile := bootImageProfileRule(ctx, defaultImageConfig)
// Generate the updatable bootclasspath packages rule.
updatableBcpPackagesRule(ctx, defaultImageConfig)
// Create the default boot image.
d.defaultBootImage = buildBootImage(ctx, defaultImageConfig, profile)
@ -887,32 +884,9 @@ func bootFrameworkProfileRule(ctx android.ModuleContext, image *bootImageConfig)
return profile
}
func updatableBcpPackagesRule(ctx android.SingletonContext, image *bootImageConfig) android.WritablePath {
if ctx.Config().UnbundledBuild() {
return nil
}
global := dexpreopt.GetGlobalConfig(ctx)
var modules []android.Module
updatableModules := global.UpdatableBootJars.CopyOfJars()
ctx.VisitAllModules(func(module android.Module) {
if !isActiveModule(module) {
return
}
name := ctx.ModuleName(module)
if i := android.IndexList(name, updatableModules); i != -1 {
modules = append(modules, module)
// Do not match the same library repeatedly.
updatableModules = append(updatableModules[:i], updatableModules[i+1:]...)
}
})
return generateUpdatableBcpPackagesRule(ctx, image, modules)
}
// generateUpdatableBcpPackagesRule generates the rule to create the updatable-bcp-packages.txt file
// and returns a path to the generated file.
func generateUpdatableBcpPackagesRule(ctx android.SingletonContext, image *bootImageConfig, updatableModules []android.Module) android.WritablePath {
func generateUpdatableBcpPackagesRule(ctx android.ModuleContext, image *bootImageConfig, updatableModules []android.Module) android.WritablePath {
// Collect `permitted_packages` for updatable boot jars.
var updatablePackages []string
for _, module := range updatableModules {
@ -921,7 +895,7 @@ func generateUpdatableBcpPackagesRule(ctx android.SingletonContext, image *bootI
if len(pp) > 0 {
updatablePackages = append(updatablePackages, pp...)
} else {
ctx.Errorf("Missing permitted_packages for %s", ctx.ModuleName(module))
ctx.ModuleErrorf("Missing permitted_packages")
}
}
}

View File

@ -179,7 +179,7 @@ func (b *platformBootclasspathModule) GenerateAndroidBuildActions(ctx android.Mo
return
}
b.generateBootImageBuildActions(ctx)
b.generateBootImageBuildActions(ctx, updatableModules)
}
func (b *platformBootclasspathModule) getImageConfig(ctx android.EarlyModuleContext) *bootImageConfig {
@ -308,7 +308,7 @@ func (b *platformBootclasspathModule) generatedHiddenAPIMetadataRules(ctx androi
}
// generateBootImageBuildActions generates ninja rules related to the boot image creation.
func (b *platformBootclasspathModule) generateBootImageBuildActions(ctx android.ModuleContext) {
func (b *platformBootclasspathModule) generateBootImageBuildActions(ctx android.ModuleContext, updatableModules []android.Module) {
// Force the GlobalSoongConfig to be created and cached for use by the dex_bootjars
// GenerateSingletonBuildActions method as it cannot create it for itself.
dexpreopt.GetGlobalSoongConfig(ctx)
@ -325,4 +325,7 @@ func (b *platformBootclasspathModule) generateBootImageBuildActions(ctx android.
// Generate the framework profile rule
bootFrameworkProfileRule(ctx, imageConfig)
// Generate the updatable bootclasspath packages rule.
generateUpdatableBcpPackagesRule(ctx, imageConfig, updatableModules)
}