diff options
author | Colin Cross <ccross@android.com> | 2019-03-18 22:15:32 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2019-03-20 19:37:58 +0000 |
commit | a4ad2b0921072a2b65a35f982d9dc390efd075c8 (patch) | |
tree | b1429a2f4b75e64dcb8d2aa5a6d2b76e633d9fbd /genrule | |
parent | 8a49795df1ed87a4889f267dbd8d28c5832bb897 (diff) | |
download | build_soong-a4ad2b0921072a2b65a35f982d9dc390efd075c8.tar.gz build_soong-a4ad2b0921072a2b65a35f982d9dc390efd075c8.tar.bz2 build_soong-a4ad2b0921072a2b65a35f982d9dc390efd075c8.zip |
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
Diffstat (limited to 'genrule')
-rw-r--r-- | genrule/genrule.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/genrule/genrule.go b/genrule/genrule.go index c8be61ac..32acd8c8 100644 --- a/genrule/genrule.go +++ b/genrule/genrule.go @@ -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, |