diff options
Diffstat (limited to 'tunnel/build.gradle')
-rw-r--r-- | tunnel/build.gradle | 68 |
1 files changed, 63 insertions, 5 deletions
diff --git a/tunnel/build.gradle b/tunnel/build.gradle index 0c18e05c..2a1b2103 100644 --- a/tunnel/build.gradle +++ b/tunnel/build.gradle @@ -1,19 +1,27 @@ +buildscript { + dependencies { + classpath "com.google.protobuf:protobuf-gradle-plugin:$protobufGradleVersion" + } +} + plugins { id 'com.android.library' + id 'com.google.protobuf' version "$protobufGradleVersion" } version wireguardVersionName group groupName android { - compileSdkVersion 31 + compileSdk 33 compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + namespace 'com.wireguard.android.tunnel' defaultConfig { minSdkVersion 21 - targetSdkVersion 31 + targetSdkVersion 33 versionCode wireguardVersionCode versionName wireguardVersionName } @@ -43,9 +51,8 @@ android { } } } - lintOptions { - disable('LongLogTag') - disable('NewApi') // Desugaring! + lint { + disable 'LongLogTag', 'NewApi' } splits { abi { @@ -58,10 +65,61 @@ android { } dependencies { + implementation project(":bgp-java") implementation "androidx.annotation:annotation:$annotationsVersion" implementation "androidx.collection:collection:$collectionVersion" + implementation "io.grpc:grpc-okhttp:$grpcVersion" + implementation "io.grpc:grpc-protobuf-lite:$grpcVersion" + implementation "io.grpc:grpc-stub:$grpcVersion" compileOnly "com.google.code.findbugs:jsr305:$jsr305Version" + compileOnly "javax.annotation:javax.annotation-api:1.2" testImplementation "junit:junit:$junitVersion" } +protobuf { + protoc { + // You still need protoc like in the non-Android case + artifact = "com.google.protobuf:protoc:$protocVersion" + } + plugins { + grpc { + artifact = "io.grpc:protoc-gen-grpc-java:$grpcVersion" + } + } + generateProtoTasks { + all().each { task -> + task.builtins { + java { + option 'lite' + } + } + task.plugins { + grpc { + option 'lite' + } + } + } + } +} + +afterEvaluate({ project -> + // All custom configurations created by the protobuf plugin, + // are only available at this point. + def protoc = configurations.getByName('protobufToolsLocator_protoc') + + task copyProtoc(type: Copy) { + // Used by tunnel/tools/libwg-go/Makefile run in tools/CMakeLists.txt + from protoc + into "${gradle.gradleUserHomeDir}/caches/protoc-${protocVersion}" + rename 'protoc-.*', 'protoc' + fileMode 0775 + } + + preBuild.dependsOn copyProtoc + + // Extract duration.proto used by external library in libwg.proto + preDebugBuild.dependsOn extractIncludeDebugProto + preReleaseBuild.dependsOn extractIncludeReleaseProto +}) + apply from: "publish.gradle" |