cmd/gomobile: fix a bug in handling -target=ios flag value
When -target=ios, GOOS must be 'darwin'.
Fixes golang/go#13670
Change-Id: Ie20db14cf24d886e13d9fe2e70caa0308790ad87
Reviewed-on: https://go-review.googlesource.com/18042
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/cmd/gomobile/bind.go b/cmd/gomobile/bind.go
index 340db72..7d5c2c1 100644
--- a/cmd/gomobile/bind.go
+++ b/cmd/gomobile/bind.go
@@ -97,10 +97,10 @@
return err
}
- switch buildTarget {
+ switch targetOS {
case "android":
return goAndroidBind(pkgs, targetArchs)
- case "ios":
+ case "darwin":
// TODO: use targetArchs?
return goIOSBind(pkgs)
default:
diff --git a/cmd/gomobile/build.go b/cmd/gomobile/build.go
index 87d0b8f..080bec2 100644
--- a/cmd/gomobile/build.go
+++ b/cmd/gomobile/build.go
@@ -106,7 +106,7 @@
if err != nil {
return err
}
- case "ios":
+ case "darwin":
// TODO: use targetArchs?
if runtime.GOOS != "darwin" {
return fmt.Errorf("-target=ios requires darwin host")
@@ -357,8 +357,12 @@
archs = append(archs, arch)
}
- if all {
- return os, supported, nil
+ targetOS := os
+ if os == "ios" {
+ targetOS = "darwin"
}
- return os, archs, nil
+ if all {
+ return targetOS, supported, nil
+ }
+ return targetOS, archs, nil
}
diff --git a/cmd/gomobile/build_test.go b/cmd/gomobile/build_test.go
index 5254f39..43e9b17 100644
--- a/cmd/gomobile/build_test.go
+++ b/cmd/gomobile/build_test.go
@@ -117,10 +117,10 @@
{"android,android/arm", false, "android", androidArchs},
{"android/arm", false, "android", "arm"},
- {"ios", false, "ios", iosArchs},
- {"ios,ios/arm", false, "ios", iosArchs},
- {"ios/arm", false, "ios", "arm"},
- {"ios/amd64", false, "ios", "amd64"},
+ {"ios", false, "darwin", iosArchs},
+ {"ios,ios/arm", false, "darwin", iosArchs},
+ {"ios/arm", false, "darwin", "arm"},
+ {"ios/amd64", false, "darwin", "amd64"},
{"", true, "", ""},
{"linux", true, "", ""},