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>
45 lines
805 B
Groovy
45 lines
805 B
Groovy
apply plugin: 'groovy'
|
|
|
|
// Many android users still use JDK7.
|
|
sourceCompatibility = '1.7'
|
|
targetCompatibility = '1.7'
|
|
|
|
buildscript {
|
|
repositories {
|
|
maven {
|
|
url "https://plugins.gradle.org/m2/"
|
|
}
|
|
}
|
|
dependencies {
|
|
classpath "com.gradle.publish:plugin-publish-plugin:0.9.4"
|
|
}
|
|
}
|
|
|
|
apply plugin: "com.gradle.plugin-publish"
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
compile gradleApi()
|
|
compile localGroovy()
|
|
|
|
testCompile 'junit:junit:4.11'
|
|
}
|
|
|
|
version = '0.2.7'
|
|
|
|
pluginBundle {
|
|
website = 'https://golang.org/x/mobile'
|
|
vcsUrl = 'https://golang.org/x/mobile'
|
|
description = 'Plugin for gomobile projects'
|
|
|
|
plugins {
|
|
gobindPlugin {
|
|
id = 'org.golang.mobile.bind'
|
|
displayName = 'gomobile bind plugin'
|
|
tags = ['golang', 'gomobile', 'gobind']
|
|
}
|
|
}
|
|
}
|