Skip to content

Commit 03b58e3

Browse files
committed
Restructure gradle files
1 parent 5717c27 commit 03b58e3

11 files changed

+136
-137
lines changed

build.gradle

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44
import org.jetbrains.kotlin.konan.target.HostManager
55

6-
apply from: "gradle/experimental.gradle"
6+
apply from: rootProject.file("gradle/experimental.gradle")
77

88
def coreModule = "kotlinx-coroutines-core"
99
// Not applicable for Kotlin plugin
@@ -89,15 +89,14 @@ allprojects {
8989
if (sourceless.contains(projectName)) return
9090

9191
def platform = platformOf(it)
92-
apply from: rootProject.file("gradle/compile-$platform-only.gradle")
92+
apply from: rootProject.file("gradle/compile-${platform}.gradle")
9393

9494
dependencies {
9595
compile project(":$coreModule")
9696
// the only way IDEA can resolve test classes
9797
testCompile project(":$coreModule").kotlin.targets.jvm.compilations.test.output.allOutputs
9898
}
9999

100-
// Add experimental annotations to the project
101100
tasks.withType(org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile).all {
102101
kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=kotlin.Experimental",
103102
"-Xuse-experimental=kotlin.experimental.ExperimentalTypeInference",
+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
apply from: rootProject.file('gradle/node-js.gradle')
6+
7+
kotlin {
8+
targets {
9+
fromPreset(presets.js, 'js')
10+
}
11+
12+
sourceSets {
13+
jsMain.dependencies {
14+
api group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib-js', version: kotlin_version
15+
api "org.jetbrains.kotlinx:atomicfu-js:$atomicFU_version"
16+
}
17+
18+
jsTest.dependencies {
19+
api "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version"
20+
}
21+
}
22+
}
23+
24+
// When source sets are configured
25+
apply from: rootProject.file('gradle/test-mocha-js.gradle')
26+
27+
compileKotlinJs {
28+
kotlinOptions.metaInfo = true
29+
kotlinOptions.sourceMap = true
30+
kotlinOptions.moduleKind = 'umd'
31+
32+
kotlinOptions {
33+
// drop -js suffix from outputFile
34+
def baseName = project.name - "-js"
35+
outputFile = new File(outputFile.parent, baseName + ".js")
36+
}
37+
}
38+
39+
compileTestKotlinJs {
40+
kotlinOptions.metaInfo = true
41+
kotlinOptions.sourceMap = true
42+
kotlinOptions.moduleKind = 'umd'
43+
}
44+
45+
task populateNodeModules(type: Copy, dependsOn: compileTestKotlinJs) {
46+
from compileKotlinJs.destinationDir
47+
into "$node.nodeModulesDir/node_modules"
48+
49+
def configuration = configurations.jsTestRuntimeClasspath
50+
from(files {
51+
configuration.collect { File file ->
52+
file.name.endsWith(".jar") ?
53+
zipTree(file.absolutePath).matching {
54+
include '*.js'
55+
include '*.js.map'
56+
} : files()
57+
}
58+
}.builtBy(configuration))
59+
}
60+
61+
npmInstall.dependsOn populateNodeModules

gradle/compile-js-only.gradle

-28
This file was deleted.

gradle/compile-js.gradle

+12-45
Original file line numberDiff line numberDiff line change
@@ -2,60 +2,27 @@
22
* Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
33
*/
44

5-
apply from: rootProject.file('gradle/node-js.gradle')
5+
// Platform-specific configuration to compile JS modules
66

7-
kotlin {
8-
targets {
9-
fromPreset(presets.js, 'js')
10-
}
7+
apply plugin: 'kotlin2js'
118

12-
sourceSets {
13-
jsMain.dependencies {
14-
api group: 'org.jetbrains.kotlin', name: 'kotlin-stdlib-js', version: kotlin_version
15-
api "org.jetbrains.kotlinx:atomicfu-js:$atomicFU_version"
16-
}
9+
dependencies {
10+
compile "org.jetbrains.kotlin:kotlin-stdlib-js:$kotlin_version"
11+
testCompile "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version"
12+
}
1713

18-
jsTest.dependencies {
19-
api "org.jetbrains.kotlin:kotlin-test-js:$kotlin_version"
20-
}
14+
tasks.withType(compileKotlin2Js.getClass()) {
15+
kotlinOptions {
16+
moduleKind = "umd"
17+
sourceMap = true
18+
metaInfo = true
2119
}
2220
}
2321

24-
// When source sets are configured
25-
apply from: rootProject.file('gradle/test-mocha-js.gradle')
26-
27-
compileKotlinJs {
28-
kotlinOptions.metaInfo = true
29-
kotlinOptions.sourceMap = true
30-
kotlinOptions.moduleKind = 'umd'
31-
22+
compileKotlin2Js {
3223
kotlinOptions {
3324
// drop -js suffix from outputFile
3425
def baseName = project.name - "-js"
3526
outputFile = new File(outputFile.parent, baseName + ".js")
3627
}
3728
}
38-
39-
compileTestKotlinJs {
40-
kotlinOptions.metaInfo = true
41-
kotlinOptions.sourceMap = true
42-
kotlinOptions.moduleKind = 'umd'
43-
}
44-
45-
task populateNodeModules(type: Copy, dependsOn: compileTestKotlinJs) {
46-
from compileKotlinJs.destinationDir
47-
into "$node.nodeModulesDir/node_modules"
48-
49-
def configuration = configurations.jsTestRuntimeClasspath
50-
from(files {
51-
configuration.collect { File file ->
52-
file.name.endsWith(".jar") ?
53-
zipTree(file.absolutePath).matching {
54-
include '*.js'
55-
include '*.js.map'
56-
} : files()
57-
}
58-
}.builtBy(configuration))
59-
}
60-
61-
npmInstall.dependsOn populateNodeModules
+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
sourceCompatibility = 1.6
6+
targetCompatibility = 1.6
7+
8+
repositories {
9+
maven { url "https://dl.bintray.com/devexperts/Maven/" }
10+
}
11+
12+
kotlin {
13+
targets {
14+
fromPreset(presets.jvm, 'jvm')
15+
}
16+
sourceSets {
17+
jvmMain.dependencies {
18+
api 'org.jetbrains.kotlin:kotlin-stdlib'
19+
api "org.jetbrains.kotlinx:atomicfu:$atomicFU_version"
20+
}
21+
22+
jvmTest.dependencies {
23+
api "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
24+
// Workaround to make addSuppressed work in tests
25+
api "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
26+
api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
27+
api "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
28+
api "junit:junit:$junit_version"
29+
}
30+
}
31+
}
32+
33+
jvmTest {
34+
testLogging {
35+
showStandardStreams = true
36+
events "passed", "failed"
37+
}
38+
def stressTest = project.properties['stressTest']
39+
if (stressTest != null) systemProperties['stressTest'] = stressTest
40+
}

gradle/compile-jvm-only.gradle

-33
This file was deleted.

gradle/compile-jvm.gradle

+15-22
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,28 @@
22
* Copyright 2016-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
33
*/
44

5+
// Platform-specific configuration to compile JVM modules
6+
7+
apply plugin: 'kotlin'
8+
59
sourceCompatibility = 1.6
610
targetCompatibility = 1.6
711

8-
repositories {
9-
maven { url "https://dl.bintray.com/devexperts/Maven/" }
12+
dependencies {
13+
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
14+
testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
15+
// Workaround to make addSuppressed work in tests
16+
testCompile "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
17+
testCompile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
18+
testCompile "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
19+
testCompile "junit:junit:$junit_version"
1020
}
1121

12-
kotlin {
13-
targets {
14-
fromPreset(presets.jvm, 'jvm')
15-
}
16-
sourceSets {
17-
jvmMain.dependencies {
18-
api 'org.jetbrains.kotlin:kotlin-stdlib'
19-
api "org.jetbrains.kotlinx:atomicfu:$atomicFU_version"
20-
}
21-
22-
jvmTest.dependencies {
23-
api "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
24-
// Workaround to make addSuppressed work in tests
25-
api "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
26-
api "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
27-
api "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
28-
api "junit:junit:$junit_version"
29-
}
30-
}
22+
repositories {
23+
maven { url "https://dl.bintray.com/devexperts/Maven/" }
3124
}
3225

33-
jvmTest {
26+
tasks.withType(Test) {
3427
testLogging {
3528
showStandardStreams = true
3629
events "passed", "failed"

gradle/dokka.gradle

+3-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ if (project.name == "kotlinx-coroutines-core") {
7777
platforms = ['Native']
7878
}
7979
doFirst {
80-
classpath = project.configurations.dokkaStubs.files + project.configurations.jvmCompileClasspath.files + project.kotlin.targets.jvm.compilations.main.output.allOutputs
80+
classpath = project.configurations.dokkaStubs.files +
81+
project.configurations.jvmCompileClasspath.files +
82+
project.kotlin.targets.jvm.compilations.main.output.allOutputs
8183
}
8284
}
8385
}

gradle/publish-bintray.gradle

-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ def configureTransitiveDependencies = { Project project, Publication publication
4747
def artifactId = node.text()
4848
if (!artifactId.endsWith("native")) return
4949

50-
// remove [-native]
5150
switch (project.name) {
5251
case 'metadata':
5352
node.setValue("${artifactId[0..-8]}-common")

kotlinx-coroutines-core/build.gradle

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
apply plugin: 'kotlin-multiplatform'
66
apply from: rootProject.file("gradle/targets.gradle")
7-
apply from: rootProject.file("gradle/compile-jvm.gradle")
7+
apply from: rootProject.file("gradle/compile-jvm-multiplatform.gradle")
88
apply from: rootProject.file("gradle/compile-common.gradle")
9-
apply from: rootProject.file("gradle/compile-js.gradle")
10-
apply from: rootProject.file("gradle/compile-native.gradle")
9+
apply from: rootProject.file("gradle/compile-js-multiplatform.gradle")
10+
apply from: rootProject.file("gradle/compile-native-multiplatform.gradle")
1111
apply from: rootProject.file('gradle/publish-npm-js.gradle')
1212

1313
/*
@@ -29,7 +29,6 @@ kotlin {
2929
def targetName = it.name
3030
compilations.all { compilation ->
3131
def compileTask = tasks.getByName(compilation.compileKotlinTaskName)
32-
compileTask.kotlinOptions.freeCompilerArgs += ["-Xuse-experimental=" + experimentalAnnotations.join(",")]
3332
// binary compatibility support
3433
if (targetName.contains("jvm") && compilation.compilationName == "main") {
3534
compileTask.kotlinOptions.freeCompilerArgs += ["-Xdump-declarations-to=${buildDir}/visibilities.json"]

0 commit comments

Comments
 (0)