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:
parent
e47fb7683e
commit
95c05c6dfd
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user