cmd/gomobile: use package path as the app name
If the application main package is in golang.org/x/mobile/example/basic the generated application will have "Basic" as its name. Change-Id: Ic59fae6e18c26e406ab352265aa2d6b11619c102 Reviewed-on: https://go-review.googlesource.com/12435 Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
parent
6256dc3e64
commit
a1efd1d6c6
|
@ -5,6 +5,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"go/build"
|
"go/build"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -13,6 +14,7 @@ import (
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
"text/template"
|
||||||
)
|
)
|
||||||
|
|
||||||
func goIOSBuild(pkg *build.Package) error {
|
func goIOSBuild(pkg *build.Package) error {
|
||||||
|
@ -21,9 +23,15 @@ func goIOSBuild(pkg *build.Package) error {
|
||||||
return fmt.Errorf("-o must have an .app for target=ios")
|
return fmt.Errorf("-o must have an .app for target=ios")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
infoplist := new(bytes.Buffer)
|
||||||
|
if err := infoplistTmpl.Execute(infoplist, manifestTmplData{
|
||||||
|
Name: strings.Title(path.Base(pkg.ImportPath)),
|
||||||
|
}); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
layout := map[string][]byte{
|
layout := map[string][]byte{
|
||||||
tmpdir + "/main.xcodeproj/project.pbxproj": []byte(projPbxproj),
|
tmpdir + "/main.xcodeproj/project.pbxproj": []byte(projPbxproj),
|
||||||
tmpdir + "/main/Info.plist": []byte(infoPlist),
|
tmpdir + "/main/Info.plist": infoplist.Bytes(),
|
||||||
tmpdir + "/main/Images.xcassets/AppIcon.appiconset/Contents.json": []byte(contentsJSON),
|
tmpdir + "/main/Images.xcassets/AppIcon.appiconset/Contents.json": []byte(contentsJSON),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,14 +138,18 @@ func iosCopyAssets(pkg *build.Package, xcodeProjDir string) error {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const infoPlist = `<?xml version="1.0" encoding="UTF-8"?>
|
type infoplistTmplData struct {
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
var infoplistTmpl = template.Must(template.New("infoplist").Parse(`<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>en</string>
|
<string>en</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>main</string>
|
<string>{{.Name}}</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>org.golang.todo.$(PRODUCT_NAME:rfc1034identifier)</string>
|
<string>org.golang.todo.$(PRODUCT_NAME:rfc1034identifier)</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
@ -175,7 +187,7 @@ const infoPlist = `<?xml version="1.0" encoding="UTF-8"?>
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
`
|
`))
|
||||||
|
|
||||||
const projPbxproj = `// !$*UTF8*$!
|
const projPbxproj = `// !$*UTF8*$!
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue