aboutsummaryrefslogtreecommitdiffstats
path: root/androidmk/parser
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-04-03 16:51:45 -0700
committerColin Cross <ccross@android.com>2015-04-03 16:51:45 -0700
commit16daa921e3510d6ba3c6d9dc8a9aea7ebc5ceba8 (patch)
tree68c40a9f42b5e404af77ad128516168cd31eabfb /androidmk/parser
parent2fe6687847a137c6897b19afefa187a38a2a8b6e (diff)
downloadbuild_soong-16daa921e3510d6ba3c6d9dc8a9aea7ebc5ceba8.tar.gz
build_soong-16daa921e3510d6ba3c6d9dc8a9aea7ebc5ceba8.tar.bz2
build_soong-16daa921e3510d6ba3c6d9dc8a9aea7ebc5ceba8.zip
androidmk: support translating all-java-files-under
Change-Id: I4c343f6d8d23d42dddc256ff022016b595bb3841
Diffstat (limited to 'androidmk/parser')
-rw-r--r--androidmk/parser/scope.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/androidmk/parser/scope.go b/androidmk/parser/scope.go
index 742ad388..5e94ea58 100644
--- a/androidmk/parser/scope.go
+++ b/androidmk/parser/scope.go
@@ -58,7 +58,7 @@ func init() {
builtinScope["__builtin_dollar"] = "$"
}
-func (v Variable) Value(scope Scope) string {
+func (v Variable) EvalFunction(scope Scope) (string, bool) {
f := v.Name.SplitN(" \t", 2)
if len(f) > 1 && f[0].Const() {
fname := f[0].Value(nil)
@@ -70,13 +70,20 @@ func (v Variable) Value(scope Scope) string {
}
if fname == "call" {
- return scope.Call(argVals[0], argVals[1:])
+ return scope.Call(argVals[0], argVals[1:]), true
} else {
- return "__builtin_func:" + fname + " " + strings.Join(argVals, " ")
+ return "__builtin_func:" + fname + " " + strings.Join(argVals, " "), true
}
}
}
+ return "", false
+}
+
+func (v Variable) Value(scope Scope) string {
+ if ret, ok := v.EvalFunction(scope); ok {
+ return ret
+ }
return scope.Get(v.Name.Value(scope))
}