Merge changes I2729001d,Ife5d2193
* changes: packaging: install/package deps if not marked IsHideFromMake Generate linker config with packaged items.
This commit is contained in:
@@ -1500,7 +1500,7 @@ func (m *ModuleBase) computeInstallDeps(ctx ModuleContext) ([]*installPathsDepSe
|
|||||||
var installDeps []*installPathsDepSet
|
var installDeps []*installPathsDepSet
|
||||||
var packagingSpecs []*packagingSpecsDepSet
|
var packagingSpecs []*packagingSpecsDepSet
|
||||||
ctx.VisitDirectDeps(func(dep Module) {
|
ctx.VisitDirectDeps(func(dep Module) {
|
||||||
if IsInstallDepNeeded(ctx.OtherModuleDependencyTag(dep)) {
|
if IsInstallDepNeeded(ctx.OtherModuleDependencyTag(dep)) && !dep.IsHideFromMake() {
|
||||||
installDeps = append(installDeps, dep.base().installFilesDepSet)
|
installDeps = append(installDeps, dep.base().installFilesDepSet)
|
||||||
packagingSpecs = append(packagingSpecs, dep.base().packagingSpecsDepSet)
|
packagingSpecs = append(packagingSpecs, dep.base().packagingSpecsDepSet)
|
||||||
}
|
}
|
||||||
|
@@ -198,8 +198,8 @@ func (p *PackagingBase) AddDeps(ctx BottomUpMutatorContext, depTag blueprint.Dep
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// See PackageModule.CopyDepsToZip
|
// Returns transitive PackagingSpecs from deps
|
||||||
func (p *PackagingBase) CopyDepsToZip(ctx ModuleContext, zipOut WritablePath) (entries []string) {
|
func (p *PackagingBase) GatherPackagingSpecs(ctx ModuleContext) map[string]PackagingSpec {
|
||||||
m := make(map[string]PackagingSpec)
|
m := make(map[string]PackagingSpec)
|
||||||
ctx.VisitDirectDeps(func(child Module) {
|
ctx.VisitDirectDeps(func(child Module) {
|
||||||
if pi, ok := ctx.OtherModuleDependencyTag(child).(PackagingItem); !ok || !pi.IsPackagingItem() {
|
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)
|
builder := NewRuleBuilder(pctx, ctx)
|
||||||
|
|
||||||
dir := PathForModuleOut(ctx, ".zip")
|
dir := PathForModuleOut(ctx, ".zip")
|
||||||
|
@@ -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 {
|
func (s *systemImage) buildLinkerConfigFile(ctx android.ModuleContext, root android.OutputPath) android.OutputPath {
|
||||||
input := android.PathForModuleSrc(ctx, android.String(s.properties.Linker_config_src))
|
input := android.PathForModuleSrc(ctx, android.String(s.properties.Linker_config_src))
|
||||||
output := root.Join(ctx, "system", "etc", "linker.config.pb")
|
output := root.Join(ctx, "system", "etc", "linker.config.pb")
|
||||||
|
|
||||||
|
// we need "Module"s for packaging items
|
||||||
var otherModules []android.Module
|
var otherModules []android.Module
|
||||||
|
deps := s.GatherPackagingSpecs(ctx)
|
||||||
ctx.WalkDeps(func(child, parent android.Module) bool {
|
ctx.WalkDeps(func(child, parent android.Module) bool {
|
||||||
// Don't track direct dependencies that aren't not packaged
|
for _, ps := range child.PackagingSpecs() {
|
||||||
if parent == s {
|
if _, ok := deps[ps.RelPathInPackage()]; ok {
|
||||||
if pi, ok := ctx.OtherModuleDependencyTag(child).(android.PackagingItem); !ok || !pi.IsPackagingItem() {
|
otherModules = append(otherModules, child)
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
otherModules = append(otherModules, child)
|
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
|
||||||
builder := android.NewRuleBuilder(pctx, ctx)
|
builder := android.NewRuleBuilder(pctx, ctx)
|
||||||
linkerconfig.BuildLinkerConfig(ctx, builder, input, otherModules, output)
|
linkerconfig.BuildLinkerConfig(ctx, builder, input, otherModules, output)
|
||||||
builder.Build("conv_linker_config", "Generate linker config protobuf "+output.String())
|
builder.Build("conv_linker_config", "Generate linker config protobuf "+output.String())
|
||||||
|
Reference in New Issue
Block a user