Skip to content

Commit 0e62052

Browse files
committed
DRY in the build scripts
1 parent 955ef56 commit 0e62052

File tree

6 files changed

+36
-41
lines changed

6 files changed

+36
-41
lines changed

build.gradle

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import org.jetbrains.kotlin.konan.target.HostManager
77
import org.jetbrains.dokka.gradle.DokkaTaskPartial
88

99
apply plugin: 'jdk-convention'
10-
apply from: rootProject.file("gradle/opt-in.gradle")
1110

1211
def coreModule = "kotlinx-coroutines-core"
1312
def testModule = "kotlinx-coroutines-test"
@@ -168,7 +167,7 @@ configure(subprojects.findAll { !sourceless.contains(it.name) }) {
168167

169168
// Configure options for all Kotlin compilation tasks
170169
tasks.withType(org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile).all {
171-
kotlinOptions.freeCompilerArgs += optInAnnotations.collect { "-Xopt-in=" + it }
170+
kotlinOptions.freeCompilerArgs += OptInPresetKt.optInAnnotations.collect { "-Xopt-in=" + it }
172171
kotlinOptions.freeCompilerArgs += "-progressive"
173172
// Disable KT-36770 for RxJava2 integration
174173
kotlinOptions.freeCompilerArgs += "-XXLanguage:-ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated"
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* Copyright 2016-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
val optInAnnotations = listOf(
6+
"kotlin.RequiresOptIn",
7+
"kotlin.experimental.ExperimentalTypeInference",
8+
"kotlin.ExperimentalMultiplatform",
9+
"kotlinx.coroutines.DelicateCoroutinesApi",
10+
"kotlinx.coroutines.ExperimentalCoroutinesApi",
11+
"kotlinx.coroutines.ObsoleteCoroutinesApi",
12+
"kotlinx.coroutines.InternalCoroutinesApi",
13+
"kotlinx.coroutines.FlowPreview")
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/*
2+
* Copyright 2016-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
import org.jetbrains.kotlin.gradle.plugin.*
5+
6+
fun KotlinSourceSet.configureMultiplatform() {
7+
val srcDir = if (name.endsWith("Main")) "src" else "test"
8+
val platform = name.dropLast(4)
9+
kotlin.srcDir("$platform/$srcDir")
10+
if (name == "jvmMain") {
11+
resources.srcDir("$platform/resources")
12+
} else if (name == "jvmTest") {
13+
resources.srcDir("$platform/test-resources")
14+
}
15+
languageSettings {
16+
optInAnnotations.forEach { optIn(it) }
17+
progressiveMode = true
18+
}
19+
}

gradle/opt-in.gradle

-13
This file was deleted.

kotlinx-coroutines-core/build.gradle

+2-13
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,8 @@ if (rootProject.ext.native_targets_enabled) {
7070
* because JMV-only projects depend on core, thus core should always be initialized before configuration.
7171
*/
7272
kotlin {
73-
configure(sourceSets) {
74-
def srcDir = name.endsWith('Main') ? 'src' : 'test'
75-
def platform = name[0..-5]
76-
kotlin.srcDirs = ["$platform/$srcDir"]
77-
if (name == "jvmMain") {
78-
resources.srcDirs = ["$platform/resources"]
79-
} else if (name == "jvmTest") {
80-
resources.srcDirs = ["$platform/test-resources"]
81-
}
82-
languageSettings {
83-
progressiveMode = true
84-
optInAnnotations.each { optIn(it) }
85-
}
73+
sourceSets.forEach {
74+
SourceSetsKt.configureMultiplatform(it)
8675
}
8776

8877
configure(targets) {

kotlinx-coroutines-test/build.gradle.kts

+1-13
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,5 @@ val experimentalAnnotations = listOf(
99
)
1010

1111
kotlin {
12-
sourceSets.all {
13-
val srcDir = if (name.endsWith("Main")) "src" else "test"
14-
val platform = name.dropLast(4)
15-
kotlin.srcDir("$platform/$srcDir")
16-
if (name == "jvmMain") {
17-
resources.srcDir("$platform/resources")
18-
} else if (name == "jvmTest") {
19-
resources.srcDir("$platform/test-resources")
20-
}
21-
languageSettings {
22-
experimentalAnnotations.forEach { optIn(it) }
23-
}
24-
}
12+
sourceSets.all { configureMultiplatform() }
2513
}

0 commit comments

Comments
 (0)