1*e07d83d3SAndroid Build Coastguard Workerplugins { 2*e07d83d3SAndroid Build Coastguard Worker id "maven-publish" 3*e07d83d3SAndroid Build Coastguard Worker id "com.android.library" 4*e07d83d3SAndroid Build Coastguard Worker} 5*e07d83d3SAndroid Build Coastguard Worker 6*e07d83d3SAndroid Build Coastguard Workerdescription = 'gRPC BinderChannel' 7*e07d83d3SAndroid Build Coastguard Worker 8*e07d83d3SAndroid Build Coastguard Workerandroid { 9*e07d83d3SAndroid Build Coastguard Worker namespace 'io.grpc.binder' 10*e07d83d3SAndroid Build Coastguard Worker compileSdkVersion 33 11*e07d83d3SAndroid Build Coastguard Worker compileOptions { 12*e07d83d3SAndroid Build Coastguard Worker sourceCompatibility 1.8 13*e07d83d3SAndroid Build Coastguard Worker targetCompatibility 1.8 14*e07d83d3SAndroid Build Coastguard Worker } 15*e07d83d3SAndroid Build Coastguard Worker defaultConfig { 16*e07d83d3SAndroid Build Coastguard Worker minSdkVersion 19 17*e07d83d3SAndroid Build Coastguard Worker targetSdkVersion 33 18*e07d83d3SAndroid Build Coastguard Worker versionCode 1 19*e07d83d3SAndroid Build Coastguard Worker versionName "1.0" 20*e07d83d3SAndroid Build Coastguard Worker testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 21*e07d83d3SAndroid Build Coastguard Worker multiDexEnabled true 22*e07d83d3SAndroid Build Coastguard Worker } 23*e07d83d3SAndroid Build Coastguard Worker lintOptions { abortOnError false } 24*e07d83d3SAndroid Build Coastguard Worker publishing { 25*e07d83d3SAndroid Build Coastguard Worker singleVariant('release') { 26*e07d83d3SAndroid Build Coastguard Worker withSourcesJar() 27*e07d83d3SAndroid Build Coastguard Worker withJavadocJar() 28*e07d83d3SAndroid Build Coastguard Worker } 29*e07d83d3SAndroid Build Coastguard Worker } 30*e07d83d3SAndroid Build Coastguard Worker} 31*e07d83d3SAndroid Build Coastguard Worker 32*e07d83d3SAndroid Build Coastguard Workerrepositories { 33*e07d83d3SAndroid Build Coastguard Worker google() 34*e07d83d3SAndroid Build Coastguard Worker mavenCentral() 35*e07d83d3SAndroid Build Coastguard Worker} 36*e07d83d3SAndroid Build Coastguard Worker 37*e07d83d3SAndroid Build Coastguard Workerdependencies { 38*e07d83d3SAndroid Build Coastguard Worker api project(':grpc-core') 39*e07d83d3SAndroid Build Coastguard Worker 40*e07d83d3SAndroid Build Coastguard Worker implementation libraries.androidx.annotation 41*e07d83d3SAndroid Build Coastguard Worker implementation libraries.androidx.core 42*e07d83d3SAndroid Build Coastguard Worker implementation libraries.androidx.lifecycle.common 43*e07d83d3SAndroid Build Coastguard Worker implementation libraries.guava 44*e07d83d3SAndroid Build Coastguard Worker testImplementation libraries.androidx.core 45*e07d83d3SAndroid Build Coastguard Worker testImplementation libraries.androidx.test.core 46*e07d83d3SAndroid Build Coastguard Worker testImplementation libraries.androidx.lifecycle.common 47*e07d83d3SAndroid Build Coastguard Worker testImplementation libraries.androidx.lifecycle.service 48*e07d83d3SAndroid Build Coastguard Worker testImplementation libraries.junit 49*e07d83d3SAndroid Build Coastguard Worker testImplementation libraries.mockito.core 50*e07d83d3SAndroid Build Coastguard Worker testImplementation (libraries.robolectric) { 51*e07d83d3SAndroid Build Coastguard Worker // Unreleased change: https://github.com/robolectric/robolectric/pull/5432 52*e07d83d3SAndroid Build Coastguard Worker exclude group: 'com.google.auto.service', module: 'auto-service' 53*e07d83d3SAndroid Build Coastguard Worker } 54*e07d83d3SAndroid Build Coastguard Worker testImplementation (libraries.guava.testlib) { 55*e07d83d3SAndroid Build Coastguard Worker exclude group: 'junit', module: 'junit' 56*e07d83d3SAndroid Build Coastguard Worker } 57*e07d83d3SAndroid Build Coastguard Worker testImplementation libraries.truth 58*e07d83d3SAndroid Build Coastguard Worker testImplementation project(':grpc-testing') 59*e07d83d3SAndroid Build Coastguard Worker testImplementation testFixtures(project(':grpc-core')) 60*e07d83d3SAndroid Build Coastguard Worker 61*e07d83d3SAndroid Build Coastguard Worker androidTestAnnotationProcessor libraries.auto.value 62*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation project(':grpc-testing') 63*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation project(':grpc-protobuf-lite') 64*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.auto.value.annotations 65*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.junit 66*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.androidx.core 67*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.androidx.test.core 68*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.androidx.test.rules 69*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.androidx.test.ext.junit 70*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.truth 71*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.mockito.android 72*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation libraries.androidx.lifecycle.service 73*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation (libraries.guava.testlib) { 74*e07d83d3SAndroid Build Coastguard Worker exclude group: 'junit', module: 'junit' 75*e07d83d3SAndroid Build Coastguard Worker } 76*e07d83d3SAndroid Build Coastguard Worker androidTestImplementation testFixtures(project(':grpc-core')) 77*e07d83d3SAndroid Build Coastguard Worker} 78*e07d83d3SAndroid Build Coastguard Worker 79*e07d83d3SAndroid Build Coastguard Workerimport net.ltgt.gradle.errorprone.CheckSeverity 80*e07d83d3SAndroid Build Coastguard Worker 81*e07d83d3SAndroid Build Coastguard Workertasks.withType(JavaCompile).configureEach { 82*e07d83d3SAndroid Build Coastguard Worker options.compilerArgs += [ 83*e07d83d3SAndroid Build Coastguard Worker "-Xlint:-cast" 84*e07d83d3SAndroid Build Coastguard Worker ] 85*e07d83d3SAndroid Build Coastguard Worker appendToProperty(it.options.errorprone.excludedPaths, ".*/R.java", "|") 86*e07d83d3SAndroid Build Coastguard Worker} 87*e07d83d3SAndroid Build Coastguard Worker 88*e07d83d3SAndroid Build Coastguard Workertasks.register("javadocs", Javadoc) { 89*e07d83d3SAndroid Build Coastguard Worker source = android.sourceSets.main.java.srcDirs 90*e07d83d3SAndroid Build Coastguard Worker exclude 'io/grpc/binder/internal/**' 91*e07d83d3SAndroid Build Coastguard Worker exclude 'io/grpc/binder/Internal*' 92*e07d83d3SAndroid Build Coastguard Worker classpath += files(android.getBootClasspath()) 93*e07d83d3SAndroid Build Coastguard Worker classpath += files({ 94*e07d83d3SAndroid Build Coastguard Worker android.libraryVariants.collect { variant -> 95*e07d83d3SAndroid Build Coastguard Worker variant.javaCompileProvider.get().classpath 96*e07d83d3SAndroid Build Coastguard Worker } 97*e07d83d3SAndroid Build Coastguard Worker }) 98*e07d83d3SAndroid Build Coastguard Worker options { 99*e07d83d3SAndroid Build Coastguard Worker // Disable JavaDoc doclint on Java 8. 100*e07d83d3SAndroid Build Coastguard Worker if (JavaVersion.current().isJava8Compatible()) { 101*e07d83d3SAndroid Build Coastguard Worker addStringOption('Xdoclint:none', '-quiet') 102*e07d83d3SAndroid Build Coastguard Worker } 103*e07d83d3SAndroid Build Coastguard Worker } 104*e07d83d3SAndroid Build Coastguard Worker // This is to enable moving to Java 11. An existing problem with javadoc 105*e07d83d3SAndroid Build Coastguard Worker // produces a warning under Java 8, but with Java 11 it fails the build. 106*e07d83d3SAndroid Build Coastguard Worker failOnError false 107*e07d83d3SAndroid Build Coastguard Worker} 108*e07d83d3SAndroid Build Coastguard Worker 109*e07d83d3SAndroid Build Coastguard Workertasks.register("javadocJar", Jar) { 110*e07d83d3SAndroid Build Coastguard Worker dependsOn javadocs 111*e07d83d3SAndroid Build Coastguard Worker archiveClassifier = 'javadoc' 112*e07d83d3SAndroid Build Coastguard Worker from javadocs.destinationDir 113*e07d83d3SAndroid Build Coastguard Worker} 114*e07d83d3SAndroid Build Coastguard Worker 115*e07d83d3SAndroid Build Coastguard Workertasks.register("sourcesJar", Jar) { 116*e07d83d3SAndroid Build Coastguard Worker archiveClassifier = 'sources' 117*e07d83d3SAndroid Build Coastguard Worker from android.sourceSets.main.java.srcDirs 118*e07d83d3SAndroid Build Coastguard Worker} 119*e07d83d3SAndroid Build Coastguard Worker 120*e07d83d3SAndroid Build Coastguard Workerpublishing { 121*e07d83d3SAndroid Build Coastguard Worker publications { 122*e07d83d3SAndroid Build Coastguard Worker maven { 123*e07d83d3SAndroid Build Coastguard Worker afterEvaluate { 124*e07d83d3SAndroid Build Coastguard Worker from components.release 125*e07d83d3SAndroid Build Coastguard Worker } 126*e07d83d3SAndroid Build Coastguard Worker } 127*e07d83d3SAndroid Build Coastguard Worker } 128*e07d83d3SAndroid Build Coastguard Worker} 129