xref: /aosp_15_r20/external/grpc-grpc-java/android-interop-testing/build.gradle (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
1plugins {
2    id "com.android.application"
3    id "com.google.protobuf"
4}
5
6description = 'gRPC: Android Integration Testing'
7
8repositories {
9    google()
10    mavenCentral()
11}
12
13android {
14    namespace 'io.grpc.android.integrationtest'
15    sourceSets {
16        main {
17            java {
18                srcDirs += "${projectDir}/../interop-testing/src/main/java/"
19                setIncludes(["io/grpc/android/integrationtest/**",
20                             "io/grpc/testing/integration/AbstractInteropTest.java",
21                             "io/grpc/testing/integration/TestServiceImpl.java",
22                             "io/grpc/testing/integration/Util.java"])
23            }
24            proto {
25                srcDirs += "${projectDir}/../interop-testing/src/main/proto/"
26            }
27        }
28    }
29    compileOptions {
30        sourceCompatibility JavaVersion.VERSION_1_8
31        targetCompatibility JavaVersion.VERSION_1_8
32    }
33    compileSdkVersion 33
34
35    defaultConfig {
36        applicationId "io.grpc.android.integrationtest"
37        minSdkVersion 19
38        targetSdkVersion 33
39        versionCode 1
40        versionName "1.0"
41        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
42        multiDexEnabled true
43    }
44    buildTypes {
45        debug { minifyEnabled false }
46        release {
47            minifyEnabled true
48            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
49        }
50    }
51    lintOptions {
52        disable 'InvalidPackage', 'HardcodedText', 'UsingOnClickInXml',
53                'MissingClass' // https://github.com/grpc/grpc-java/issues/8799
54    }
55    packagingOptions {
56        exclude 'META-INF/INDEX.LIST'
57        exclude 'META-INF/io.netty.versions.properties'
58    }
59}
60
61dependencies {
62    implementation 'androidx.appcompat:appcompat:1.3.0'
63    implementation 'androidx.multidex:multidex:2.0.0'
64    implementation libraries.androidx.annotation
65    implementation 'com.google.android.gms:play-services-base:18.0.1'
66
67    implementation project(':grpc-android'),
68            project(':grpc-auth'),
69            project(':grpc-census'),
70            project(':grpc-okhttp'),
71            project(':grpc-protobuf-lite'),
72            project(':grpc-stub'),
73            project(':grpc-testing'),
74            libraries.hdrhistogram,
75            libraries.junit,
76            libraries.truth,
77            libraries.androidx.test.rules,
78            libraries.opencensus.contrib.grpc.metrics
79
80    implementation (libraries.google.auth.oauth2Http) {
81        exclude group: 'org.apache.httpcomponents'
82    }
83
84    implementation (project(':grpc-services')) {
85        exclude group: 'com.google.protobuf'
86        exclude group: 'com.google.guava'
87    }
88
89    compileOnly libraries.javax.annotation
90
91    androidTestImplementation project(':grpc-netty'),
92            'androidx.test.ext:junit:1.1.3',
93            'androidx.test:runner:1.4.0'
94}
95
96// Checkstyle doesn't run automatically with android
97task checkStyleMain(type: Checkstyle) {
98    source 'src/main/java'
99    include '**/*.java'
100    classpath = files()
101}
102
103task checkStyleTest(type: Checkstyle) {
104    source 'src/androidTest/java'
105    include '**/*.java'
106    classpath = files()
107}
108
109project.tasks['check'].dependsOn checkStyleMain, checkStyleTest
110
111import net.ltgt.gradle.errorprone.CheckSeverity
112
113tasks.withType(JavaCompile).configureEach {
114    options.compilerArgs += [
115            "-Xlint:-cast"
116    ]
117    appendToProperty(it.options.errorprone.excludedPaths, ".*/R.java", "|")
118    appendToProperty(
119            it.options.errorprone.excludedPaths,
120            ".*/src/generated/.*",
121            "|")
122}
123
124configureProtoCompilation()
125