The gobind plugin exposes a set of Go packages as a AAR file ready to be used by and Android project. Unfortunately, being a library project limits the Go packages to access only the Java API from the standard library and the Android SDK. This CL tightens the integration with the Android plugin to support access to project dependencies such as the Android Support Library, to the generated R.* resource classes and finally to the Android databinding classes. When the gradle project has loaded the Android plugin, the generation of the Go library is split in two. First, the gobind tool generates the Java classes for the bound Go packages. In this step, Go packages can access the standard Java and Android libraries as well as project dependencies. After this step, Android databinding layout files can refer to Go classes. In step two, the gomobile tool generates the JNI libraries with the Go implementation of the generated Java classes. In this step, Go can access the standard Java and Android libraries, dependencies as well as R.* and generated databinding classes. Change-Id: If853ecabdbd01eec5f89d064a6bc715cb20a4d83 Reviewed-on: https://go-review.googlesource.com/30094 Reviewed-by: David Crawshaw <crawshaw@golang.org>
873 B
873 B
gobindPlugin invokes gomobile bind command on the specified package.
Usage
build.gradle:
plugins { id "org.golang.mobile.bind" version "0.2.6" } gobind { // Package to bind. Separate multiple packages with spaces. pkg "github.com/someone/somepackage" // GOPATH GOPATH "/home/gopher" // Optional list of architectures. Defaults to all supported architectures. GOARCH="arm amd64" // Absolute path to the gomobile binary. Optional. GOMOBILE "/mypath/bin/gomobile" // Absolute path to the gomobile binary. Optional. GOBIND "/mypath/bin/gobind" // Absolute path to the go binary. Optional. GO "/usr/local/go/bin/go" // Pass extra parameters to command line. Optional. GOMOBILEFLAGS "-javapkg my.java.package" }
For details: https://plugins.gradle.org/plugin/org.golang.mobile.bind
TODO
- Find the stale aar file (how?)