Merge "Replace $(call my-dir) with a string literal"
This commit is contained in:
@@ -1376,7 +1376,7 @@ func (p *myDirCallParser) parse(ctx *parseContext, node mkparser.Node, args *mkp
|
|||||||
if !args.Empty() {
|
if !args.Empty() {
|
||||||
return ctx.newBadExpr(node, "my-dir function cannot have any arguments passed to it.")
|
return ctx.newBadExpr(node, "my-dir function cannot have any arguments passed to it.")
|
||||||
}
|
}
|
||||||
return &variableRefExpr{ctx.addVariable("LOCAL_PATH"), true}
|
return &stringLiteralExpr{literal: filepath.Dir(ctx.script.mkFile)}
|
||||||
}
|
}
|
||||||
|
|
||||||
type isProductInListCallParser struct{}
|
type isProductInListCallParser struct{}
|
||||||
|
@@ -1459,6 +1459,19 @@ def init(g, handle):
|
|||||||
g["MY_VAR_4"] = "foo"
|
g["MY_VAR_4"] = "foo"
|
||||||
_my_local_var_with_dashes = ["foo"]
|
_my_local_var_with_dashes = ["foo"]
|
||||||
g["MY_STRING_VAR"] = " ".join(rblf.expand_wildcard("foo/bar.mk"))
|
g["MY_STRING_VAR"] = " ".join(rblf.expand_wildcard("foo/bar.mk"))
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "Set LOCAL_PATH to my-dir",
|
||||||
|
mkname: "product.mk",
|
||||||
|
in: `
|
||||||
|
LOCAL_PATH := $(call my-dir)
|
||||||
|
`,
|
||||||
|
expected: `load("//build/make/core:product_config.rbc", "rblf")
|
||||||
|
|
||||||
|
def init(g, handle):
|
||||||
|
cfg = rblf.cfg(handle)
|
||||||
|
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@@ -319,15 +319,13 @@ func (ctx *parseContext) addVariable(name string) variable {
|
|||||||
v = &localVariable{baseVariable{nam: name, typ: hintType}}
|
v = &localVariable{baseVariable{nam: name, typ: hintType}}
|
||||||
} else {
|
} else {
|
||||||
vt := hintType
|
vt := hintType
|
||||||
if strings.HasPrefix(name, "LOCAL_") && vt == starlarkTypeUnknown {
|
// Heuristics: local variables that contribute to corresponding config variables
|
||||||
// Heuristics: local variables that contribute to corresponding config variables
|
if cfgVarName, found := localProductConfigVariables[name]; found && vt == starlarkTypeUnknown {
|
||||||
if cfgVarName, found := localProductConfigVariables[name]; found {
|
vi, found2 := KnownVariables[cfgVarName]
|
||||||
vi, found2 := KnownVariables[cfgVarName]
|
if !found2 {
|
||||||
if !found2 {
|
panic(fmt.Errorf("unknown config variable %s for %s", cfgVarName, name))
|
||||||
panic(fmt.Errorf("unknown config variable %s for %s", cfgVarName, name))
|
|
||||||
}
|
|
||||||
vt = vi.valueType
|
|
||||||
}
|
}
|
||||||
|
vt = vi.valueType
|
||||||
}
|
}
|
||||||
if strings.HasSuffix(name, "_LIST") && vt == starlarkTypeUnknown {
|
if strings.HasSuffix(name, "_LIST") && vt == starlarkTypeUnknown {
|
||||||
// Heuristics: Variables with "_LIST" suffix are lists
|
// Heuristics: Variables with "_LIST" suffix are lists
|
||||||
|
Reference in New Issue
Block a user