2
0
mirror of synced 2025-02-23 06:48:15 +00:00

cmd/gomobile: parse -target and -o

Fixes golang/go#11337.

Change-Id: I324f0c4482476b6f2b084828625fd53b8f802a23
Reviewed-on: https://go-review.googlesource.com/11480
Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
Burcu Dogan 2015-06-24 15:15:51 -07:00
parent e47fb7683e
commit 95c05c6dfd
3 changed files with 27 additions and 27 deletions

View File

@ -89,13 +89,13 @@ func runBind(cmd *command) error {
return err
}
switch *buildTarget {
switch buildTarget {
case "android":
// implementation is below
case "ios":
return fmt.Errorf(`-target=ios not yet supported`)
default:
return fmt.Errorf(`unknown -target, %q.`, *buildTarget)
return fmt.Errorf(`unknown -target, %q.`, buildTarget)
}
if sdkDir := os.Getenv("ANDROID_HOME"); sdkDir == "" {
@ -323,14 +323,14 @@ func main() {
// javac and jar commands are needed to build classes.jar.
func buildAAR(androidDir string, pkg *build.Package) (err error) {
var out io.Writer = ioutil.Discard
if *buildO == "" {
*buildO = pkg.Name + ".aar"
if buildO == "" {
buildO = pkg.Name + ".aar"
}
if !strings.HasSuffix(*buildO, ".aar") {
return fmt.Errorf("output file name %q does not end in '.aar'", *buildO)
if !strings.HasSuffix(buildO, ".aar") {
return fmt.Errorf("output file name %q does not end in '.aar'", buildO)
}
if !buildN {
f, err := os.Create(*buildO)
f, err := os.Create(buildO)
if err != nil {
return err
}

View File

@ -80,13 +80,13 @@ func runBuild(cmd *command) (err error) {
return err
}
switch *buildTarget {
switch buildTarget {
case "android":
// implementation is below
case "ios":
return fmt.Errorf(`-target=ios not yet supported`)
default:
return fmt.Errorf(`unknown -target, %q.`, *buildTarget)
return fmt.Errorf(`unknown -target, %q.`, buildTarget)
}
if pkg.Name != "main" {
@ -160,15 +160,15 @@ func runBuild(cmd *command) (err error) {
return err
}
if *buildO == "" {
*buildO = filepath.Base(pkg.Dir) + ".apk"
if buildO == "" {
buildO = filepath.Base(pkg.Dir) + ".apk"
}
if !strings.HasSuffix(*buildO, ".apk") {
return fmt.Errorf("output file name %q does not end in '.apk'", *buildO)
if !strings.HasSuffix(buildO, ".apk") {
return fmt.Errorf("output file name %q does not end in '.apk'", buildO)
}
var out io.Writer
if !buildN {
f, err := os.Create(*buildO)
f, err := os.Create(buildO)
if err != nil {
return err
}
@ -317,18 +317,18 @@ func printcmd(format string, args ...interface{}) {
// "Build flags", used by multiple commands.
var (
buildA bool // -a
buildI bool // -i
buildN bool // -n
buildV bool // -v
buildX bool // -x
buildO *string // -o
buildTarget *string // -target
buildA bool // -a
buildI bool // -i
buildN bool // -n
buildV bool // -v
buildX bool // -x
buildO string // -o
buildTarget string // -target
)
func addBuildFlags(cmd *command) {
buildO = cmd.flag.String("o", "", "")
buildTarget = cmd.flag.String("target", "android", "")
cmd.flag.StringVar(&buildO, "o", "", "")
cmd.flag.StringVar(&buildTarget, "target", "android", "")
cmd.flag.BoolVar(&buildA, "a", false, "")
cmd.flag.BoolVar(&buildI, "i", false, "")
@ -389,8 +389,8 @@ func goAndroidBuild(src, libPath string) error {
gocmd.Args = append(gocmd.Args, "-x")
}
if libPath == "" {
if *buildO != "" {
gocmd.Args = append(gocmd.Args, `-o`, *buildO)
if buildO != "" {
gocmd.Args = append(gocmd.Args, `-o`, buildO)
}
} else {
gocmd.Args = append(gocmd.Args, "-buildmode=c-shared", "-o", libPath)

View File

@ -111,8 +111,8 @@ func goIOSBuild(src string) error {
// TODO(jbd): Fallback to copying if renaming fails.
out := path.Base(pkg.ImportPath) + ".app"
if *buildO != "" {
out = filepath.Join(*buildO, out)
if buildO != "" {
out = filepath.Join(buildO, out)
}
if buildX {
printcmd("mv %s %s", dir+"/build/Release-iphoneos/main.app", out)