Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e084f1d7 authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge "Move generateUpdatableBcpPackagesRule to platform_bootclasspath"

parents c1fc9fae 4c094428
Loading
Loading
Loading
Loading
+2 −28
Original line number Diff line number Diff line
@@ -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")
			}
		}
	}
+5 −2
Original line number Diff line number Diff line
@@ -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)
}