aboutsummaryrefslogtreecommitdiffstats
path: root/androidmk
diff options
context:
space:
mode:
Diffstat (limited to 'androidmk')
-rw-r--r--androidmk/cmd/androidmk/test.go15
-rw-r--r--androidmk/cmd/androidmk/values.go39
2 files changed, 41 insertions, 13 deletions
diff --git a/androidmk/cmd/androidmk/test.go b/androidmk/cmd/androidmk/test.go
index b3ce5d02..077c35fb 100644
--- a/androidmk/cmd/androidmk/test.go
+++ b/androidmk/cmd/androidmk/test.go
@@ -108,7 +108,7 @@ input = ["testing/include"]
cc_library_shared {
// Comment 1
include_dirs: ["system/core/include"] + // Comment 2
- input + [TOP + "/system/core/include"],
+ input + ["system/core/include"],
local_include_dirs: ["."] + ["include"] + ["test/include"],
// Comment 3
}`,
@@ -345,6 +345,19 @@ cc_library_shared {
}
`,
},
+ {
+ desc: "Handle TOP",
+ in: `
+include $(CLEAR_VARS)
+LOCAL_C_INCLUDES := $(TOP)/system/core/include $(TOP)
+include $(BUILD_SHARED_LIBRARY)
+`,
+ expected: `
+cc_library_shared {
+ include_dirs: ["system/core/include", "."],
+}
+`,
+ },
}
func reformatBlueprint(input string) string {
diff --git a/androidmk/cmd/androidmk/values.go b/androidmk/cmd/androidmk/values.go
index ce2f2796..c4fb204c 100644
--- a/androidmk/cmd/androidmk/values.go
+++ b/androidmk/cmd/androidmk/values.go
@@ -65,9 +65,17 @@ func makeToStringExpression(ms *mkparser.MakeString, scope mkparser.Scope) (*bpp
Variable: name.Value(nil),
}
- val, err = addValues(val, tmp)
- if err != nil {
- return nil, err
+ if tmp.Variable == "TOP" {
+ if s[0] == '/' {
+ s = s[1:]
+ } else {
+ s = "." + s
+ }
+ } else {
+ val, err = addValues(val, tmp)
+ if err != nil {
+ return nil, err
+ }
}
}
@@ -120,15 +128,22 @@ func makeToListExpression(ms *mkparser.MakeString, scope mkparser.Scope) (*bppar
if !f.Variables[0].Name.Const() {
return nil, fmt.Errorf("unsupported non-const variable name")
}
- if len(listValue.ListValue) > 0 {
- listOfListValues = append(listOfListValues, listValue)
- }
- listOfListValues = append(listOfListValues, &bpparser.Value{
- Type: bpparser.List,
- Variable: f.Variables[0].Name.Value(nil),
- })
- listValue = &bpparser.Value{
- Type: bpparser.List,
+ if f.Variables[0].Name.Value(nil) == "TOP" {
+ listValue.ListValue = append(listValue.ListValue, bpparser.Value{
+ Type: bpparser.String,
+ StringValue: ".",
+ })
+ } else {
+ if len(listValue.ListValue) > 0 {
+ listOfListValues = append(listOfListValues, listValue)
+ }
+ listOfListValues = append(listOfListValues, &bpparser.Value{
+ Type: bpparser.List,
+ Variable: f.Variables[0].Name.Value(nil),
+ })
+ listValue = &bpparser.Value{
+ Type: bpparser.List,
+ }
}
}
} else {