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

Commit 015a0afe authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge changes I2729001d,Ife5d2193

* changes:
  packaging: install/package deps if not marked IsHideFromMake
  Generate linker config with packaged items.
parents 7ce2dee0 77f7c442
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1500,7 +1500,7 @@ func (m *ModuleBase) computeInstallDeps(ctx ModuleContext) ([]*installPathsDepSe
	var installDeps []*installPathsDepSet
	var packagingSpecs []*packagingSpecsDepSet
	ctx.VisitDirectDeps(func(dep Module) {
		if IsInstallDepNeeded(ctx.OtherModuleDependencyTag(dep)) {
		if IsInstallDepNeeded(ctx.OtherModuleDependencyTag(dep)) && !dep.IsHideFromMake() {
			installDeps = append(installDeps, dep.base().installFilesDepSet)
			packagingSpecs = append(packagingSpecs, dep.base().packagingSpecsDepSet)
		}
+7 −2
Original line number Diff line number Diff line
@@ -198,8 +198,8 @@ func (p *PackagingBase) AddDeps(ctx BottomUpMutatorContext, depTag blueprint.Dep
	}
}

// See PackageModule.CopyDepsToZip
func (p *PackagingBase) CopyDepsToZip(ctx ModuleContext, zipOut WritablePath) (entries []string) {
// Returns transitive PackagingSpecs from deps
func (p *PackagingBase) GatherPackagingSpecs(ctx ModuleContext) map[string]PackagingSpec {
	m := make(map[string]PackagingSpec)
	ctx.VisitDirectDeps(func(child Module) {
		if pi, ok := ctx.OtherModuleDependencyTag(child).(PackagingItem); !ok || !pi.IsPackagingItem() {
@@ -211,7 +211,12 @@ func (p *PackagingBase) CopyDepsToZip(ctx ModuleContext, zipOut WritablePath) (e
			}
		}
	})
	return m
}

// See PackageModule.CopyDepsToZip
func (p *PackagingBase) CopyDepsToZip(ctx ModuleContext, zipOut WritablePath) (entries []string) {
	m := p.GatherPackagingSpecs(ctx)
	builder := NewRuleBuilder(pctx, ctx)

	dir := PathForModuleOut(ctx, ".zip")
+7 −5
Original line number Diff line number Diff line
@@ -50,17 +50,19 @@ func (s *systemImage) buildExtraFiles(ctx android.ModuleContext, root android.Ou
func (s *systemImage) buildLinkerConfigFile(ctx android.ModuleContext, root android.OutputPath) android.OutputPath {
	input := android.PathForModuleSrc(ctx, android.String(s.properties.Linker_config_src))
	output := root.Join(ctx, "system", "etc", "linker.config.pb")

	// we need "Module"s for packaging items
	var otherModules []android.Module
	deps := s.GatherPackagingSpecs(ctx)
	ctx.WalkDeps(func(child, parent android.Module) bool {
		// Don't track direct dependencies that aren't not packaged
		if parent == s {
			if pi, ok := ctx.OtherModuleDependencyTag(child).(android.PackagingItem); !ok || !pi.IsPackagingItem() {
				return false
		for _, ps := range child.PackagingSpecs() {
			if _, ok := deps[ps.RelPathInPackage()]; ok {
				otherModules = append(otherModules, child)
			}
		}
		otherModules = append(otherModules, child)
		return true
	})

	builder := android.NewRuleBuilder(pctx, ctx)
	linkerconfig.BuildLinkerConfig(ctx, builder, input, otherModules, output)
	builder.Build("conv_linker_config", "Generate linker config protobuf "+output.String())