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, "", ""},