forked from hoc081098/solivagant
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle.kts
112 lines (92 loc) · 2.92 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import com.diffplug.gradle.spotless.SpotlessExtension
import com.diffplug.gradle.spotless.SpotlessPlugin
import io.gitlab.arturbosch.detekt.DetektPlugin
import io.gitlab.arturbosch.detekt.extensions.DetektExtension
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent
@Suppress("DSL_SCOPE_VIOLATION")
plugins {
alias(libs.plugins.kotlin.multiplatform) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.kotlin.serialization) apply false
alias(libs.plugins.kotlin.cocoapods) apply false
alias(libs.plugins.kotlin.parcelize) apply false
alias(libs.plugins.jetbrains.compose) apply false
alias(libs.plugins.android.app) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.gradle.spotless) apply false
alias(libs.plugins.detekt) apply false
alias(libs.plugins.kotlinx.binary.compatibility.validator) apply false
alias(libs.plugins.kotlinx.kover)
alias(libs.plugins.dokka)
alias(libs.plugins.poko) apply false
alias(libs.plugins.vanniktech.maven.publish) apply false
}
subprojects {
apply<DetektPlugin>()
configure<DetektExtension> {
source.from(files("src/"))
config.from(files("${project.rootDir}/detekt.yml"))
buildUponDefaultConfig = true
allRules = true
}
afterEvaluate {
dependencies {
"detektPlugins"(libs.compose.rules.detekt)
}
}
}
dependencies {
kover(projects.khonshuNavigationCore)
kover(projects.lifecycle)
kover(projects.navigation)
}
val ktlintVersion = libs.versions.ktlint.get()
allprojects {
apply<SpotlessPlugin>()
configure<SpotlessExtension> {
kotlin {
target("**/*.kt")
ktlint(ktlintVersion)
trimTrailingWhitespace()
indentWithSpaces()
endWithNewline()
}
format("xml") {
target("**/res/**/*.xml")
trimTrailingWhitespace()
indentWithSpaces()
endWithNewline()
}
kotlinGradle {
target("**/*.gradle.kts", "*.gradle.kts")
ktlint(ktlintVersion)
trimTrailingWhitespace()
indentWithSpaces()
endWithNewline()
}
}
tasks.withType<AbstractTestTask> {
testLogging {
showExceptions = true
showCauses = true
showStackTraces = true
showStandardStreams = true
events = setOf(
TestLogEvent.PASSED,
TestLogEvent.FAILED,
TestLogEvent.SKIPPED,
TestLogEvent.STANDARD_OUT,
TestLogEvent.STANDARD_ERROR,
)
exceptionFormat = TestExceptionFormat.FULL
}
}
// Workaround for https://github.com/Kotlin/dokka/issues/2977.
tasks.withType<org.jetbrains.dokka.gradle.AbstractDokkaTask> {
val className = "org.jetbrains.kotlin.gradle.targets.native.internal.CInteropMetadataDependencyTransformationTask"
@Suppress("UNCHECKED_CAST")
val taskClass = Class.forName(className) as Class<Task>
parent?.subprojects?.forEach { dependsOn(it.tasks.withType(taskClass)) }
}
}