Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 453f03d0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Replace $(call my-dir) with a string literal" am: 5beafc19 am:...

Merge "Replace $(call my-dir) with a string literal" am: 5beafc19 am: 00331473 am: 8b114878 am: 3d6abee5

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2032783

Change-Id: Ifadc0910bafbef2b2cef079c14fd202db0357e18
parents 914b2bf3 3d6abee5
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1376,7 +1376,7 @@ func (p *myDirCallParser) parse(ctx *parseContext, node mkparser.Node, args *mkp
	if !args.Empty() {
		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{}
+13 −0
Original line number Diff line number Diff line
@@ -1459,6 +1459,19 @@ def init(g, handle):
  g["MY_VAR_4"] = "foo"
  _my_local_var_with_dashes = ["foo"]
  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)
  
`,
	},
}
+6 −8
Original line number Diff line number Diff line
@@ -319,16 +319,14 @@ func (ctx *parseContext) addVariable(name string) variable {
			v = &localVariable{baseVariable{nam: name, typ: hintType}}
		} else {
			vt := hintType
			if strings.HasPrefix(name, "LOCAL_") && vt == starlarkTypeUnknown {
			// Heuristics: local variables that contribute to corresponding config variables
				if cfgVarName, found := localProductConfigVariables[name]; found {
			if cfgVarName, found := localProductConfigVariables[name]; found && vt == starlarkTypeUnknown {
				vi, found2 := KnownVariables[cfgVarName]
				if !found2 {
					panic(fmt.Errorf("unknown config variable %s for %s", cfgVarName, name))
				}
				vt = vi.valueType
			}
			}
			if strings.HasSuffix(name, "_LIST") && vt == starlarkTypeUnknown {
				// Heuristics: Variables with "_LIST" suffix are lists
				vt = starlarkTypeList