diff options
author | Colin Cross <ccross@android.com> | 2015-12-01 18:06:44 -0800 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2015-12-02 11:26:17 -0800 |
commit | d9344d20ff5583f4d777f05d5f9829a5b57683dd (patch) | |
tree | 60ad01f2d2ae43fc6f59fa14c99aa7680b3cb0c3 /androidmk | |
parent | 4bd49c2ce1d578a514f7c16ff395aa64a364b7ac (diff) | |
download | build_soong-d9344d20ff5583f4d777f05d5f9829a5b57683dd.tar.gz build_soong-d9344d20ff5583f4d777f05d5f9829a5b57683dd.tar.bz2 build_soong-d9344d20ff5583f4d777f05d5f9829a5b57683dd.zip |
androidmk: Add support for LOCAL_MODULE_HOST_OS
Change-Id: Ic1aba6cdcd394fbe2b1819b80fb997f00d9711dc
Diffstat (limited to 'androidmk')
-rw-r--r-- | androidmk/cmd/androidmk/android.go | 41 |
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{}{}, } |