Support multiple outputs for genrule

am: 9c8681f4f9

Change-Id: If0306db6c56748faf86164a3df8a72d7ea4d656b
This commit is contained in:
Dan Willemsen 2016-09-29 05:42:35 +00:00 committed by android-build-merger
commit 6966d7071f
1 changed files with 13 additions and 7 deletions

View File

@ -85,7 +85,7 @@ type taskFunc func(ctx android.ModuleContext) []generateTask
type generateTask struct {
in android.Paths
out android.ModuleGenPath
out android.WritablePaths
}
func (g *generator) GeneratedSourceFiles() android.Paths {
@ -167,7 +167,7 @@ func (g *generator) GenerateAndroidBuildActions(ctx android.ModuleContext) {
func (g *generator) generateSourceFile(ctx android.ModuleContext, task generateTask, tool string) {
ctx.ModuleBuild(pctx, android.ModuleBuildParams{
Rule: g.rule,
Output: task.out,
Outputs: task.out,
Inputs: task.in,
Implicits: g.deps,
Args: map[string]string{
@ -175,7 +175,9 @@ func (g *generator) generateSourceFile(ctx android.ModuleContext, task generateT
},
})
g.outputFiles = append(g.outputFiles, task.out)
for _, outputFile := range task.out {
g.outputFiles = append(g.outputFiles, outputFile)
}
}
func generatorFactory(tasks taskFunc, props ...interface{}) (blueprint.Module, []interface{}) {
@ -197,7 +199,7 @@ func GenSrcsFactory() (blueprint.Module, []interface{}) {
for _, in := range srcFiles {
tasks = append(tasks, generateTask{
in: android.Paths{in},
out: android.GenPathWithExt(ctx, in, properties.Output_extension),
out: android.WritablePaths{android.GenPathWithExt(ctx, in, properties.Output_extension)},
})
}
return tasks
@ -218,10 +220,14 @@ func GenRuleFactory() (blueprint.Module, []interface{}) {
properties := &genRuleProperties{}
tasks := func(ctx android.ModuleContext) []generateTask {
outs := make(android.WritablePaths, len(properties.Out))
for i, out := range properties.Out {
outs[i] = android.PathForModuleGen(ctx, out)
}
return []generateTask{
{
in: ctx.ExpandSources(properties.Srcs, nil),
out: android.PathForModuleGen(ctx, properties.Out),
out: outs,
},
}
}
@ -233,6 +239,6 @@ type genRuleProperties struct {
// list of input files
Srcs []string
// name of the output file that will be generated
Out string
// names of the output files that will be generated
Out []string
}