aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-12-01 18:06:44 -0800
committerColin Cross <ccross@android.com>2015-12-02 11:26:17 -0800
commitd9344d20ff5583f4d777f05d5f9829a5b57683dd (patch)
tree60ad01f2d2ae43fc6f59fa14c99aa7680b3cb0c3
parent4bd49c2ce1d578a514f7c16ff395aa64a364b7ac (diff)
downloadbuild_soong-d9344d20ff5583f4d777f05d5f9829a5b57683dd.tar.gz
build_soong-d9344d20ff5583f4d777f05d5f9829a5b57683dd.tar.bz2
build_soong-d9344d20ff5583f4d777f05d5f9829a5b57683dd.zip
androidmk: Add support for LOCAL_MODULE_HOST_OS
Change-Id: Ic1aba6cdcd394fbe2b1819b80fb997f00d9711dc
-rw-r--r--androidmk/cmd/androidmk/android.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index c45b3f46..31eb6ccf 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -80,6 +80,7 @@ var rewriteProperties = map[string]struct {
"LOCAL_C_INCLUDES": {localIncludeDirs},
"LOCAL_EXPORT_C_INCLUDE_DIRS": {exportIncludeDirs},
"LOCAL_MODULE_STEM": {stem},
+ "LOCAL_MODULE_HOST_OS": {hostOs},
}
func localAbsPath(value bpparser.Value) (*bpparser.Value, error) {
@@ -267,6 +268,46 @@ func stem(file *bpFile, prefix string, value *mkparser.MakeString, appendVariabl
return setVariable(file, appendVariable, prefix, varName, val, true)
}
+func hostOs(file *bpFile, prefix string, value *mkparser.MakeString, appendVariable bool) error {
+ val, err := makeVariableToBlueprint(file, value, bpparser.List)
+ if err != nil {
+ return err
+ }
+
+ inList := func(s string) bool {
+ for _, v := range val.ListValue {
+ if v.StringValue == s {
+ return true
+ }
+ }
+ return false
+ }
+
+ falseValue := &bpparser.Value{
+ Type: bpparser.Bool,
+ BoolValue: false,
+ }
+
+ trueValue := &bpparser.Value{
+ Type: bpparser.Bool,
+ BoolValue: true,
+ }
+
+ if inList("windows") {
+ err = setVariable(file, appendVariable, "target.windows", "enabled", trueValue, true)
+ }
+
+ if !inList("linux") && err == nil {
+ err = setVariable(file, appendVariable, "target.linux", "enabled", falseValue, true)
+ }
+
+ if !inList("darwin") && err == nil {
+ err = setVariable(file, appendVariable, "target.darwin", "enabled", falseValue, true)
+ }
+
+ return err
+}
+
var deleteProperties = map[string]struct{}{
"LOCAL_CPP_EXTENSION": struct{}{},
}