-
Notifications
You must be signed in to change notification settings - Fork 5
/
build.gradle.kts
74 lines (61 loc) · 1.88 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
plugins {
kotlin("multiplatform") apply false
id("org.jetbrains.dokka") version "1.5.0"
}
// Collect all source and class directories for jacoco
// TODO: Is there a better way to do that?
val ignoreCoverageForProjects = setOf("integ-tests")
val allKotlinSourceDirs = allprojects
.filter { p -> p.name !in ignoreCoverageForProjects }
.flatMap { p ->
listOf(
"${p.projectDir}/src/commonMain/kotlin",
"${p.projectDir}/src/jvmMain/kotlin",
)
}
val allKotlinClassDirs = allprojects
.filter { p -> p.name !in ignoreCoverageForProjects }
.map { p ->
"${p.buildDir}/classes/kotlin/jvm/main"
}
allprojects {
apply {
plugin("org.jetbrains.kotlin.multiplatform")
plugin("jacoco")
}
group = "dev.evo.elasticmagic"
version = "0.1-SNAPSHOT"
repositories {
mavenCentral()
}
afterEvaluate {
tasks.register<JacocoReport>("jacocoJVMTestReport") {
group = "Reporting"
description = "Generate Jacoco coverage report."
classDirectories.setFrom(allKotlinClassDirs)
sourceDirectories.setFrom(allKotlinSourceDirs)
executionData.setFrom(files("$buildDir/jacoco/jvmTest.exec"))
reports {
html.required.set(true)
xml.required.set(true)
csv.required.set(false)
}
}
tasks.named("jvmTest") {
outputs.upToDateWhen { false }
finalizedBy("jacocoJVMTestReport")
}
}
}
configureMultiplatform()
configure<KotlinMultiplatformExtension> {
sourceSets {
val commonMain by getting {
dependencies {
api(project(":elasticmagic-serde"))
api(project(":elasticmagic-transport"))
}
}
}
}