Export genrules to Make as phony packages
Export genrules to Make, which will allow it to support dist-for-goals. Test: m PRODUCT-sdk_phone_armv7-win_sdk sdk_repo dist Bug: 80494441 Bug: 128878015 Change-Id: Idb8dfcec2be5bfab94d17395826ef451b0dd9b63
This commit is contained in:
@@ -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,
|
||||
|
Reference in New Issue
Block a user