androidmk: TOP is always "."

But if it comes out to ./, remove both characters.

Change-Id: Ia86c1a60522736773b2e8ee0cf54a4348d302573
This commit is contained in:
Dan Willemsen 2016-06-05 22:33:49 -07:00
parent 58f9bb1160
commit 22abd40ed0
2 changed files with 41 additions and 13 deletions

View file

@ -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
}`,
@ -343,6 +343,19 @@ cc_library_shared {
ldflags: ["-Wl,--link-opt"],
version_script: "exported32.map",
}
`,
},
{
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", "."],
}
`,
},
}

View file

@ -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 {