cmd/gobind: support source overlays

gobind loads packages with go/packages to generate Java, Objective-C,
and Go bindings. It currently has no way to apply an overlay while
loading package syntax and type information.

Add an -overlay flag. Pass it to go list so package file selection
follows the overlay, and parse replacement contents when go/packages
loads syntax and type information. This keeps generated bindings
consistent with the overlaid source.

Add a regression test that replaces OldAPI with NewAPI and verifies
that gobind generates only the NewAPI Java binding.

For golang/go#80656

Change-Id: I59c26b81d5f49feef6d606bc7c6a84d0438d65b0
Reviewed-on: https://go-review.googlesource.com/c/mobile/+/808380
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Hajime Hoshi <hajimehoshi@gmail.com>
Reviewed-by: Hajime Hoshi <hajimehoshi@gmail.com>
LUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2 files changed
tree: 2d02e3f8c18d57574fbe35f6b2dc0bab876bb111
  1. app/
  2. asset/
  3. bind/
  4. cmd/
  5. doc/
  6. event/
  7. example/
  8. exp/
  9. geom/
  10. gl/
  11. internal/
  12. testdata/
  13. .gitattributes
  14. .gitignore
  15. codereview.cfg
  16. CONTRIBUTING.md
  17. go.mod
  18. go.sum
  19. LICENSE
  20. PATENTS
  21. README.md
README.md

Go support for Mobile devices

Go Reference

The Go mobile repository holds packages and build tools for using Go on mobile platforms.

Package documentation as a starting point:

Caution image

The Go Mobile project is experimental. Use this at your own risk. While we are working hard to improve it, neither Google nor the Go team can provide end-user support.

This is early work and installing the build system requires Go 1.5. Follow the instructions on golang.org/wiki/Mobile to install the gomobile command, build the basic and the bind example apps.


Contributions to Go are appreciated. See https://go.dev/doc/contribute.

The git repository is https://go.googlesource.com/mobile.