Skip to content

Commit ef06d35

Browse files
authored
Update build config, and dependencies (#71)
* update versions and build config * Kotlin 1.8.21 * Gradle 8.1.1 * KxS 1.5.0 * Tidy up build config * bump versions - kotlinSymbolProcessing - kotlinCompileTesting - kotest - gradleNodePlugin - gitVersioningPlugin * rm unused build config * fix project.uri config cache issue * GHA: macos-11 -> macos-latest
1 parent 48d875e commit ef06d35

22 files changed

+435
-244
lines changed

.github/workflows/tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
gradle-check:
2424
strategy:
2525
matrix:
26-
os: [ ubuntu-latest, macos-11, windows-latest ]
26+
os: [ ubuntu-latest, macos-latest, windows-latest ]
2727
fail-fast: false
2828
uses: ./.github/workflows/gradle_task.yml
2929
with:

build.gradle.kts

-9
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,8 @@ gitVersioning.apply {
2121
rev { version = "\${commit}" }
2222
}
2323

24-
25-
tasks.wrapper {
26-
gradleVersion = "7.6"
27-
distributionType = Wrapper.DistributionType.BIN
28-
}
29-
30-
3124
idea {
3225
module {
33-
isDownloadSources = true
34-
isDownloadJavadoc = true
3526
excludeGeneratedGradleDsl(layout)
3627
excludeDirs = excludeDirs + layout.files(
3728
".idea",

buildSrc/build.gradle.kts

-23
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2-
31
plugins {
42
`kotlin-dsl`
53
}
64

7-
85
dependencies {
96
implementation(platform(libs.kotlin.bom))
107

@@ -21,22 +18,6 @@ dependencies {
2118
implementation("org.jetbrains.kotlinx:kotlinx-html:0.8.0")
2219
}
2320

24-
25-
tasks.withType<KotlinCompile>().configureEach {
26-
kotlinOptions {
27-
jvmTarget = libs.versions.jvmTarget.get()
28-
apiVersion = libs.versions.kotlinTarget.get()
29-
languageVersion = libs.versions.kotlinTarget.get()
30-
}
31-
32-
kotlinOptions.freeCompilerArgs += listOf(
33-
"-opt-in=kotlin.RequiresOptIn",
34-
"-opt-in=kotlin.ExperimentalStdlibApi",
35-
"-opt-in=kotlin.time.ExperimentalTime",
36-
)
37-
}
38-
39-
4021
kotlin {
4122
jvmToolchain {
4223
languageVersion.set(
@@ -46,7 +27,3 @@ kotlin {
4627
)
4728
}
4829
}
49-
50-
kotlinDslPluginOptions {
51-
jvmTarget.set(libs.versions.jvmTarget)
52-
}

buildSrc/repositories.settings.gradle.kts

-60
This file was deleted.

buildSrc/settings.gradle.kts

+11-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
rootProject.name = "buildSrc"
22

3-
apply(from = "./repositories.settings.gradle.kts")
3+
pluginManagement {
4+
repositories {
5+
mavenCentral()
6+
gradlePluginPortal()
7+
}
8+
}
49

10+
@Suppress("UnstableApiUsage")
511
dependencyResolutionManagement {
6-
@Suppress("UnstableApiUsage")
12+
repositories {
13+
mavenCentral()
14+
gradlePluginPortal()
15+
}
716
versionCatalogs {
817
create("libs") {
918
from(files("../gradle/libs.versions.toml"))

buildSrc/src/main/kotlin/buildsrc/config/kmm.kt

-23
Original file line numberDiff line numberDiff line change
@@ -20,26 +20,3 @@ fun Project.relocateKotlinJsStore() {
2020
}
2121
}
2222
}
23-
24-
25-
fun KotlinMultiplatformExtension.currentHostTarget(
26-
targetName: String = "native",
27-
configure: KotlinNativeTargetWithHostTests.() -> Unit,
28-
): KotlinNativeTargetWithHostTests {
29-
val hostOs = System.getProperty("os.name")
30-
val hostTarget = when {
31-
hostOs == "Mac OS X" -> macosX64(targetName)
32-
hostOs == "Linux" -> linuxX64(targetName)
33-
hostOs.startsWith("Windows") -> mingwX64(targetName)
34-
else -> throw GradleException("Preset for host OS '$hostOs' is undefined")
35-
}
36-
37-
println("Current host target ${hostTarget.targetName}/${hostTarget.preset?.name}")
38-
hostTarget.configure()
39-
return hostTarget
40-
}
41-
42-
43-
fun KotlinMultiplatformExtension.publicationsFromMainHost(): List<String> {
44-
return listOf(jvm(), js()).map { it.name } + "kotlinMultiplatform"
45-
}

buildSrc/src/main/kotlin/buildsrc/config/publishing.kt

-21
Original file line numberDiff line numberDiff line change
@@ -32,24 +32,3 @@ fun MavenPublication.createKxsTsGenPom(): Unit = pom {
3232
url.set("https://github.com/adamko-dev/kotlinx-serialization-typescript-generator")
3333
}
3434
}
35-
36-
37-
// hacks because IntelliJ still doesn't properly load DSL accessors for buildSrc
38-
39-
40-
/** Configure [PublishingExtension] */
41-
fun Project.publishing(configure: PublishingExtension.() -> Unit): Unit =
42-
extensions.configure(configure)
43-
44-
45-
val Project.publishing: PublishingExtension
46-
get() = extensions.getByType<PublishingExtension>()
47-
48-
49-
/** Configure [SigningExtension] */
50-
fun Project.signing(configure: SigningExtension.() -> Unit): Unit =
51-
extensions.configure(configure)
52-
53-
54-
val Project.signing: SigningExtension
55-
get() = extensions.getByType<SigningExtension>()

buildSrc/src/main/kotlin/buildsrc/convention/kotlin-mpp.gradle.kts

+12-4
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,21 @@ plugins {
1414
relocateKotlinJsStore()
1515

1616

17-
//kotlin {
18-
extensions.configure<KotlinMultiplatformExtension> {
17+
kotlin {
18+
js(IR) {
19+
browser()
20+
nodejs()
21+
}
22+
23+
jvm {
24+
withJava()
25+
}
26+
1927
targets.configureEach {
2028
compilations.configureEach {
2129
kotlinOptions {
22-
languageVersion = "1.7"
23-
apiVersion = "1.7"
30+
languageVersion = "1.8"
31+
apiVersion = "1.8"
2432
}
2533
}
2634
}

buildSrc/src/main/kotlin/buildsrc/convention/maven-publish.gradle.kts

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package buildsrc.convention
22

3-
import buildsrc.config.createKxsTsGenPom
4-
import buildsrc.config.credentialsAction
5-
import buildsrc.config.isKotlinMultiplatformJavaEnabled
6-
import buildsrc.config.publishing
7-
import buildsrc.config.signing
3+
import buildsrc.config.*
84
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
95

106

@@ -44,7 +40,7 @@ tasks.withType<AbstractPublishToMaven>().configureEach {
4440
mustRunAfter(tasks.withType<Sign>())
4541

4642
doLast {
47-
logger.lifecycle("[${this.name}] ${project.group}:${project.name}:${project.version}")
43+
logger.lifecycle("[${path}] ${publication?.groupId}:${publication?.artifactId}:${publication?.version}")
4844
}
4945
}
5046

@@ -133,7 +129,6 @@ fun Project.javadocStubTask(): Jar {
133129
archiveClassifier.set("javadoc")
134130
}
135131

136-
137132
tasks.withType<AbstractPublishToMaven>().all {
138133
dependsOn(javadocJarStub)
139134
}

docs/code/build.gradle.kts

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2-
31
plugins {
42
buildsrc.convention.`kotlin-jvm`
53
buildsrc.convention.node
@@ -26,10 +24,16 @@ dependencies {
2624
testFixturesImplementation(libs.kotest.assertionsCore)
2725
}
2826

29-
tasks.withType<KotlinCompile>().configureEach {
30-
kotlinOptions.freeCompilerArgs += listOf(
31-
"-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
32-
)
27+
kotlin {
28+
sourceSets {
29+
configureEach {
30+
languageSettings {
31+
// optIn("kotlin.ExperimentalStdlibApi")
32+
// optIn("kotlin.time.ExperimentalTime")
33+
// optIn("kotlinx.serialization.ExperimentalSerializationApi")
34+
}
35+
}
36+
}
3337
}
3438

3539
sourceSets.main {
@@ -52,7 +56,9 @@ knit {
5256
}
5357
}
5458

55-
tasks.withType<Test>().configureEach { dependsOn(tasks.knit) }
59+
tasks.withType<Test>().configureEach {
60+
dependsOn(tasks.knit)
61+
}
5662

5763
tasks.test {
5864
// TSCompile tests are slow, they don't need to run every time

gradle.properties

-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ org.gradle.caching=true
55
org.gradle.unsafe.configuration-cache=true
66
org.gradle.unsafe.configuration-cache-problems=warn
77

8-
# cache accessors - defaults to 'true' in Gradle 8.0 https://github.com/gradle/gradle/issues/20416
9-
org.gradle.kotlin.dsl.precompiled.accessors.strict=true
10-
118
kotlin.mpp.stability.nowarn=true
129

1310
kxstsgen_enableTsCompileTests=false

0 commit comments

Comments
 (0)