xref: /aosp_15_r20/external/grpc-grpc-java/all/build.gradle (revision e07d83d3ffcef9ecfc9f7f475418ec639ff0e5fe)
1plugins {
2    id "java-library"
3    id "maven-publish"
4
5    id "com.github.kt3k.coveralls"
6}
7
8description = "gRPC: All"
9
10def subprojects = [
11    project(':grpc-api'),
12    project(':grpc-auth'),
13    project(':grpc-context'),
14    project(':grpc-core'),
15    project(':grpc-grpclb'),
16    project(':grpc-netty'),
17    project(':grpc-okhttp'),
18    project(':grpc-protobuf'),
19    project(':grpc-protobuf-lite'),
20    project(':grpc-rls'),
21    project(':grpc-services'),
22    project(':grpc-servlet'),
23    project(':grpc-servlet-jakarta'),
24    project(':grpc-stub'),
25    project(':grpc-testing'),
26    project(':grpc-xds'),
27]
28
29for (subproject in subprojects) {
30    if (subproject == project) {
31        continue
32    }
33    evaluationDependsOn(subproject.path)
34}
35evaluationDependsOn(':grpc-interop-testing')
36
37dependencies {
38    api subprojects.minus([project(':grpc-protobuf-lite')])
39    implementation libraries.guava.jre // JRE required by transitive protobuf-java-util
40}
41
42tasks.named("javadoc").configure {
43    classpath = files(subprojects.collect { subproject ->
44        subproject.javadoc.classpath
45    })
46    for (subproject in subprojects) {
47        if (subproject == project) {
48            continue;
49        }
50        source subproject.javadoc.source
51        options.links subproject.javadoc.options.links.toArray(new String[0])
52    }
53}
54
55tasks.named("jacocoTestReport").configure {
56    dependsOn(subprojects.jacocoTestReport.dependsOn)
57    dependsOn(project(':grpc-interop-testing').jacocoTestReport.dependsOn)
58    executionData.from files(subprojects.jacocoTestReport.executionData)
59            .plus(project(':grpc-interop-testing').jacocoTestReport.executionData)
60            .filter { f -> f.exists() }
61    reports {
62        xml.required = true
63        html.required = true
64    }
65
66    subprojects.each { subproject ->
67        additionalSourceDirs.from(subproject.jacocoTestReport.additionalSourceDirs)
68        sourceDirectories.from(subproject.jacocoTestReport.sourceDirectories)
69        classDirectories.from(subproject.jacocoTestReport.classDirectories)
70    }
71}
72
73coveralls {
74    sourceDirs = subprojects.sourceSets.main.allSource.srcDirs.flatten()
75}
76
77tasks.named("coveralls").configure { dependsOn tasks.named("jacocoTestReport") }
78