Merge "Enable select syntax support for phony_deps
in phony_rule" into main
This commit is contained in:
@@ -20,6 +20,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
|
|
||||||
|
"github.com/google/blueprint/proptools"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@@ -88,14 +90,15 @@ type PhonyRule struct {
|
|||||||
android.ModuleBase
|
android.ModuleBase
|
||||||
android.DefaultableModuleBase
|
android.DefaultableModuleBase
|
||||||
|
|
||||||
properties PhonyProperties
|
phonyDepsModuleNames []string
|
||||||
|
properties PhonyProperties
|
||||||
}
|
}
|
||||||
|
|
||||||
type PhonyProperties struct {
|
type PhonyProperties struct {
|
||||||
// The Phony_deps is the set of all dependencies for this target,
|
// The Phony_deps is the set of all dependencies for this target,
|
||||||
// and it can function similarly to .PHONY in a makefile.
|
// and it can function similarly to .PHONY in a makefile.
|
||||||
// Additionally, dependencies within it can even include genrule.
|
// Additionally, dependencies within it can even include genrule.
|
||||||
Phony_deps []string
|
Phony_deps proptools.Configurable[[]string]
|
||||||
}
|
}
|
||||||
|
|
||||||
// The phony_rule provides functionality similar to the .PHONY in a makefile.
|
// The phony_rule provides functionality similar to the .PHONY in a makefile.
|
||||||
@@ -109,13 +112,14 @@ func PhonyRuleFactory() android.Module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PhonyRule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
func (p *PhonyRule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||||
|
p.phonyDepsModuleNames = p.properties.Phony_deps.GetOrDefault(p.ConfigurableEvaluator(ctx), nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PhonyRule) AndroidMk() android.AndroidMkData {
|
func (p *PhonyRule) AndroidMk() android.AndroidMkData {
|
||||||
return android.AndroidMkData{
|
return android.AndroidMkData{
|
||||||
Custom: func(w io.Writer, name, prefix, moduleDir string, data android.AndroidMkData) {
|
Custom: func(w io.Writer, name, prefix, moduleDir string, data android.AndroidMkData) {
|
||||||
if len(p.properties.Phony_deps) > 0 {
|
if len(p.phonyDepsModuleNames) > 0 {
|
||||||
depModulesStr := strings.Join(p.properties.Phony_deps, " ")
|
depModulesStr := strings.Join(p.phonyDepsModuleNames, " ")
|
||||||
fmt.Fprintln(w, ".PHONY:", name)
|
fmt.Fprintln(w, ".PHONY:", name)
|
||||||
fmt.Fprintln(w, name, ":", depModulesStr)
|
fmt.Fprintln(w, name, ":", depModulesStr)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user