-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbuild.gradle.kts
94 lines (80 loc) · 2.75 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
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
val kt = "1.4.31"
id("org.springframework.boot") version "2.4.4" apply false
id("io.spring.dependency-management") version "1.0.11.RELEASE" apply false
kotlin("jvm") version kt
kotlin("plugin.spring") version kt apply false
kotlin("plugin.serialization") version kt apply false
id("com.github.gmazzo.buildconfig") version "3.0.0"
java
}
allprojects {
group = "net.mamoe.mirai"
version = "0.0.1-SNAPSHOT"
repositories {
mavenCentral()
}
}
buildConfig {
packageName("net.mamoe.mirai.plugincenter")
useKotlinOutput()
buildConfigField("long", "BUILD_TIME", "${System.currentTimeMillis()}L")
buildConfigField("String", "VERSION", "\"${version}\"")
}
java.sourceCompatibility = JavaVersion.VERSION_11
subprojects {
afterEvaluate {
java.sourceCompatibility = JavaVersion.VERSION_11
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}
kotlin.sourceSets.all {
languageSettings.apply {
languageVersion = "1.5"
progressiveMode = true
val experimentalAnnotations = """
kotlin.OptIn
kotlin.contracts.ExperimentalContracts
""".trimIndent().split("\n").filterNot(String::isBlank)
for (ann in experimentalAnnotations) {
useExperimentalAnnotation(ann)
}
}
}
configureFlattenSourceSets()
tasks.withType<KotlinCompile> {
kotlinOptions {
useOldBackend = true // serialization fails on IR
freeCompilerArgs = freeCompilerArgs + "-Xjsr305=strict"
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all"
freeCompilerArgs = freeCompilerArgs + "-Xinline-classes"
jvmTarget = "11"
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
tasks.withType<JavaCompile> {
options.encoding = "UTF8"
}
}
}
fun Project.configureFlattenSourceSets() {
sourceSets {
findByName("main")?.apply {
resources.setSrcDirs(listOf(projectDir.resolve("resources")))
java.setSrcDirs(listOf(projectDir.resolve("src")))
}
findByName("test")?.apply {
resources.setSrcDirs(listOf(projectDir.resolve("resources")))
java.setSrcDirs(listOf(projectDir.resolve("test")))
}
}
}
extensions.findByName("buildScan")?.withGroovyBuilder {
setProperty("termsOfServiceUrl", "https://gradle.com/terms-of-service")
setProperty("termsOfServiceAgree", "yes")
}