Merge "Export genrules to Make as phony packages"

This commit is contained in:
Treehugger Robot 2019-03-21 00:07:21 +00:00 committed by Gerrit Code Review
commit f8d3be9cb7
1 changed files with 26 additions and 0 deletions

View File

@ -16,6 +16,7 @@ package genrule
import (
"fmt"
"io"
"strings"
"github.com/google/blueprint"
@ -115,6 +116,8 @@ type Module struct {
outputFiles android.Paths
outputDeps android.Paths
subName string
}
type taskFunc func(ctx android.ModuleContext, rawCommand string, srcFiles android.Paths) generateTask
@ -157,6 +160,8 @@ func (g *Module) DepsMutator(ctx android.BottomUpMutatorContext) {
}
func (g *Module) GenerateAndroidBuildActions(ctx android.ModuleContext) {
g.subName = ctx.ModuleSubDir()
if len(g.properties.Export_include_dirs) > 0 {
for _, dir := range g.properties.Export_include_dirs {
g.exportedIncludeDirs = append(g.exportedIncludeDirs,
@ -400,6 +405,27 @@ func (g *Module) IDEInfo(dpInfo *android.IdeInfo) {
}
}
func (g *Module) AndroidMk() android.AndroidMkData {
return android.AndroidMkData{
Include: "$(BUILD_PHONY_PACKAGE)",
Class: "FAKE",
OutputFile: android.OptionalPathForPath(g.outputFiles[0]),
SubName: g.subName,
Extra: []android.AndroidMkExtraFunc{
func(w io.Writer, outputFile android.Path) {
fmt.Fprintln(w, "LOCAL_ADDITIONAL_DEPENDENCIES :=", strings.Join(g.outputFiles.Strings(), " "))
},
},
Custom: func(w io.Writer, name, prefix, moduleDir string, data android.AndroidMkData) {
android.WriteAndroidMkData(w, data)
if data.SubName != "" {
fmt.Fprintln(w, ".PHONY:", name)
fmt.Fprintln(w, name, ":", name+g.subName)
}
},
}
}
func generatorFactory(taskGenerator taskFunc, props ...interface{}) *Module {
module := &Module{
taskGenerator: taskGenerator,