Merge changes I0f746a11,I08e61a24

* changes:
  Make OutputPath implement objPathProvider
  Allow CopyDepsToZip() to work on WritablePath
This commit is contained in:
Paul Duffin
2021-02-03 10:01:39 +00:00
committed by Gerrit Code Review
3 changed files with 9 additions and 4 deletions

View File

@@ -66,7 +66,7 @@ type PackageModule interface {
// returns zip entries in it. This is expected to be called in GenerateAndroidBuildActions, // returns zip entries in it. This is expected to be called in GenerateAndroidBuildActions,
// followed by a build rule that unzips it and creates the final output (img, zip, tar.gz, // followed by a build rule that unzips it and creates the final output (img, zip, tar.gz,
// etc.) from the extracted files // etc.) from the extracted files
CopyDepsToZip(ctx ModuleContext, zipOut OutputPath) []string CopyDepsToZip(ctx ModuleContext, zipOut WritablePath) []string
} }
// PackagingBase provides basic functionality for packaging dependencies. A module is expected to // PackagingBase provides basic functionality for packaging dependencies. A module is expected to
@@ -180,7 +180,7 @@ func (p *PackagingBase) AddDeps(ctx BottomUpMutatorContext, depTag blueprint.Dep
} }
// See PackageModule.CopyDepsToZip // See PackageModule.CopyDepsToZip
func (p *PackagingBase) CopyDepsToZip(ctx ModuleContext, zipOut OutputPath) (entries []string) { func (p *PackagingBase) CopyDepsToZip(ctx ModuleContext, zipOut WritablePath) (entries []string) {
m := make(map[string]PackagingSpec) m := make(map[string]PackagingSpec)
ctx.WalkDeps(func(child Module, parent Module) bool { ctx.WalkDeps(func(child Module, parent Module) bool {
if !IsInstallDepNeeded(ctx.OtherModuleDependencyTag(child)) { if !IsInstallDepNeeded(ctx.OtherModuleDependencyTag(child)) {
@@ -196,7 +196,7 @@ func (p *PackagingBase) CopyDepsToZip(ctx ModuleContext, zipOut OutputPath) (ent
builder := NewRuleBuilder(pctx, ctx) builder := NewRuleBuilder(pctx, ctx)
dir := PathForModuleOut(ctx, ".zip").OutputPath dir := PathForModuleOut(ctx, ".zip")
builder.Command().Text("rm").Flag("-rf").Text(dir.String()) builder.Command().Text("rm").Flag("-rf").Text(dir.String())
builder.Command().Text("mkdir").Flag("-p").Text(dir.String()) builder.Command().Text("mkdir").Flag("-p").Text(dir.String())

View File

@@ -80,7 +80,7 @@ func (m *packageTestModule) DepsMutator(ctx BottomUpMutatorContext) {
} }
func (m *packageTestModule) GenerateAndroidBuildActions(ctx ModuleContext) { func (m *packageTestModule) GenerateAndroidBuildActions(ctx ModuleContext) {
zipFile := PathForModuleOut(ctx, "myzip.zip").OutputPath zipFile := PathForModuleOut(ctx, "myzip.zip")
m.entries = m.CopyDepsToZip(ctx, zipFile) m.entries = m.CopyDepsToZip(ctx, zipFile)
} }

View File

@@ -1011,8 +1011,13 @@ func (p OutputPath) buildDir() string {
return p.config.buildDir return p.config.buildDir
} }
func (p OutputPath) objPathWithExt(ctx ModuleOutPathContext, subdir, ext string) ModuleObjPath {
return PathForModuleObj(ctx, subdir, pathtools.ReplaceExtension(p.path, ext))
}
var _ Path = OutputPath{} var _ Path = OutputPath{}
var _ WritablePath = OutputPath{} var _ WritablePath = OutputPath{}
var _ objPathProvider = OutputPath{}
// toolDepPath is a Path representing a dependency of the build tool. // toolDepPath is a Path representing a dependency of the build tool.
type toolDepPath struct { type toolDepPath struct {