cmd/gomobile: copy libopenal.so explicitly
Fixes golang/go#12550. Change-Id: I744729cfd702f0e044eac22858ee746096977665 Reviewed-on: https://go-review.googlesource.com/14474 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
parent
c76d5c8830
commit
1f77c34859
@ -106,7 +106,7 @@ func goAndroidBuild(pkg *build.Package) (map[string]bool, error) {
|
|||||||
if !buildN {
|
if !buildN {
|
||||||
apkw = NewWriter(out, privKey)
|
apkw = NewWriter(out, privKey)
|
||||||
}
|
}
|
||||||
apkwcreate := func(name string) (io.Writer, error) {
|
apkwCreate := func(name string) (io.Writer, error) {
|
||||||
if buildV {
|
if buildV {
|
||||||
fmt.Fprintf(os.Stderr, "apk: %s\n", name)
|
fmt.Fprintf(os.Stderr, "apk: %s\n", name)
|
||||||
}
|
}
|
||||||
@ -115,8 +115,25 @@ func goAndroidBuild(pkg *build.Package) (map[string]bool, error) {
|
|||||||
}
|
}
|
||||||
return apkw.Create(name)
|
return apkw.Create(name)
|
||||||
}
|
}
|
||||||
|
apkwWriteFile := func(dst, src string) error {
|
||||||
|
w, err := apkwCreate(dst)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !buildN {
|
||||||
|
f, err := os.Open(src)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
if _, err := io.Copy(w, f); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
w, err := apkwcreate("AndroidManifest.xml")
|
w, err := apkwCreate("AndroidManifest.xml")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -124,7 +141,7 @@ func goAndroidBuild(pkg *build.Package) (map[string]bool, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
w, err = apkwcreate("classes.dex")
|
w, err = apkwCreate("classes.dex")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -136,44 +153,16 @@ func goAndroidBuild(pkg *build.Package) (map[string]bool, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
w, err = apkwcreate("lib/armeabi/lib" + libName + ".so")
|
if err := apkwWriteFile("lib/armeabi/lib"+libName+".so", libPath); err != nil {
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if !buildN {
|
|
||||||
r, err := os.Open(libPath)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if _, err := io.Copy(w, r); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if nmpkgs["golang.org/x/mobile/exp/audio/al"] {
|
if nmpkgs["golang.org/x/mobile/exp/audio/al"] {
|
||||||
alDir := filepath.Join(ndkccpath, "openal/lib")
|
dst := "lib/armeabi/libopenal.so"
|
||||||
filepath.Walk(alDir, func(path string, info os.FileInfo, err error) error {
|
src := filepath.Join(ndkccpath, "openal/"+dst)
|
||||||
if err != nil {
|
if err := apkwWriteFile(dst, src); err != nil {
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
if info.IsDir() {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
name := "lib/" + path[len(alDir)+1:]
|
|
||||||
w, err := apkwcreate(name)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !buildN {
|
|
||||||
f, err := os.Open(path)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer f.Close()
|
|
||||||
_, err = io.Copy(w, f)
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add any assets.
|
// Add any assets.
|
||||||
@ -198,17 +187,7 @@ func goAndroidBuild(pkg *build.Package) (map[string]bool, error) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
name := "assets/" + path[len(assetsDir)+1:]
|
name := "assets/" + path[len(assetsDir)+1:]
|
||||||
w, err := apkwcreate(name)
|
return apkwWriteFile(name, path)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
f, err := os.Open(path)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
defer f.Close()
|
|
||||||
_, err = io.Copy(w, f)
|
|
||||||
return err
|
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("asset %v", err)
|
return nil, fmt.Errorf("asset %v", err)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user