cmd/gomobile: don't build apps that doesn't import the app package
In order to keep consistency with target=android, this CL turns off gomobile build support for target=ios for programs that don't import golang.org/x/mobile/app. Change-Id: I423b042144aecfdc127726d0b97733c4d6532a81 Reviewed-on: https://go-review.googlesource.com/11985 Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
80eb606a0f
commit
08407a4b1b
@ -89,6 +89,9 @@ func runBuild(cmd *command) (err error) {
|
|||||||
if pkg.Name != "main" {
|
if pkg.Name != "main" {
|
||||||
return fmt.Errorf("cannot build non-main packages")
|
return fmt.Errorf("cannot build non-main packages")
|
||||||
}
|
}
|
||||||
|
if err := importsApp(pkg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return goIOSBuild(pkg.ImportPath)
|
return goIOSBuild(pkg.ImportPath)
|
||||||
}
|
}
|
||||||
return fmt.Errorf("-target=ios requires darwin host")
|
return fmt.Errorf("-target=ios requires darwin host")
|
||||||
@ -101,16 +104,8 @@ func runBuild(cmd *command) (err error) {
|
|||||||
return goAndroidBuild(pkg.ImportPath, "")
|
return goAndroidBuild(pkg.ImportPath, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Building a program, make sure it is appropriate for mobile.
|
if err := importsApp(pkg); err != nil {
|
||||||
importsApp := false
|
return err
|
||||||
for _, path := range pkg.Imports {
|
|
||||||
if path == "golang.org/x/mobile/app" {
|
|
||||||
importsApp = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !importsApp {
|
|
||||||
return fmt.Errorf(`%s does not import "golang.org/x/mobile/app"`, pkg.ImportPath)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if buildN {
|
if buildN {
|
||||||
@ -297,6 +292,16 @@ func runBuild(cmd *command) (err error) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func importsApp(pkg *build.Package) error {
|
||||||
|
// Building a program, make sure it is appropriate for mobile.
|
||||||
|
for _, path := range pkg.Imports {
|
||||||
|
if path == "golang.org/x/mobile/app" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return fmt.Errorf(`%s does not import "golang.org/x/mobile/app"`, pkg.ImportPath)
|
||||||
|
}
|
||||||
|
|
||||||
var xout io.Writer = os.Stderr
|
var xout io.Writer = os.Stderr
|
||||||
|
|
||||||
func printcmd(format string, args ...interface{}) {
|
func printcmd(format string, args ...interface{}) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user