Skip to content

Commit 0847d0e

Browse files
committed
chore: dep updates and Kotlin MPP 2.2.20 configuration refinements
1 parent 8d9243c commit 0847d0e

File tree

5 files changed

+43
-79
lines changed

5 files changed

+43
-79
lines changed

gradle/libs.versions.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ kotlinx-fuzz = "0.2.2"
3838
kotlinx-metadata = "0.9.0"
3939
kotlinx-reflect-lite = "1.2.0-RC"
4040
kotlin-lincheck = "3.2"
41-
kotlin-wrappers = "2025.9.4"
41+
kotlin-wrappers = "2025.9.5"
4242
kotlin-redacted = "1.15.0-2.2.20-Beta2-alpha01"
4343
kotlin-serviceloader = "0.0.19"
4444
kotlinx-multik = "0.2.3"
@@ -172,7 +172,7 @@ async-profiler = "4.1"
172172
ap-loader-all = "4.1-10"
173173
openjdk-jmc = "9.1.0"
174174
airlift-aircompressor = "2.0.2"
175-
airlift-security = "353"
175+
airlift-security = "354"
176176
directory-keystore = "1.1.1"
177177
maven-mima = "3.0.0-alpha-3"
178178
maven-archeologist = "0.0.10"
@@ -182,7 +182,7 @@ xchart = "3.8.8"
182182
batik = "1.19"
183183
twelvemonkeys = "3.12.0"
184184
okapibarcode = "0.5.2"
185-
chasm = "1.0.0"
185+
chasm = "1.1.0"
186186
cel = "0.11.0"
187187
kfswatch = "1.3.1"
188188
kmp-process = "0.3.2"

plugins/project/src/main/kotlin/common/Multiplatform.kt

Lines changed: 37 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
77
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
88
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
99
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
10-
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
10+
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
1111

1212
fun KotlinMultiplatformExtension.jvmTarget(project: Project) =
1313
with(project) {
@@ -72,6 +72,34 @@ fun KotlinMultiplatformExtension.jvmTarget(project: Project) =
7272
}
7373
}
7474

75+
fun KotlinJsTargetDsl.webConfig(project: Project) =
76+
with(project) {
77+
browser {
78+
commonWebpackConfig {
79+
cssSupport { enabled = true }
80+
// outputFileName = "app.js"
81+
// scssSupport { enabled = true }
82+
// sourceMaps = true
83+
}
84+
85+
runTask { sourceMaps = false }
86+
testTask {
87+
enabled = true
88+
testLogging { configureLogEvents() }
89+
useKarma { useChromeHeadless() }
90+
}
91+
92+
// distribution { outputDirectory = file("$projectDir/docs") }
93+
}
94+
95+
if (isSharedProject.not()) {
96+
binaries.executable()
97+
}
98+
generateTypeScriptDefinitions()
99+
compilerOptions { configureKotlinJs() }
100+
testRuns.configureEach { executionTask.configure {} }
101+
}
102+
75103
fun KotlinMultiplatformExtension.webDeps(project: Project) =
76104
with(project) {
77105
sourceSets {
@@ -80,87 +108,22 @@ fun KotlinMultiplatformExtension.webDeps(project: Project) =
80108
api(libs.ktor.client.js)
81109
api(libs.kotlinx.browser)
82110
// api(npm("@js-joda/timezone", libs.versions.npm.jsjoda.tz.get()))
83-
// ksp(project(":meta:ksp:processor"))
84111
}
85-
86112
// kotlin.srcDir("src/main/kotlin")
87113
// resources.srcDir("src/main/resources")
88114
}
89-
90-
webTest { kotlin {} }
91115
}
92116
}
93117

94-
fun KotlinMultiplatformExtension.jsTarget(project: Project) =
95-
with(project) {
96-
js {
97-
browser {
98-
commonWebpackConfig {
99-
cssSupport { enabled = true }
100-
// outputFileName = "js-app.js"
101-
// scssSupport { enabled = true }
102-
// sourceMaps = true
103-
}
104-
105-
runTask { sourceMaps = false }
106-
testTask {
107-
enabled = true
108-
testLogging { configureLogEvents() }
109-
useKarma { useChromeHeadless() }
110-
}
118+
fun KotlinMultiplatformExtension.jsTarget(project: Project) {
119+
js { webConfig(project) }
120+
webDeps(project)
121+
}
111122

112-
// distribution { outputDirectory = file("$projectDir/docs") }
113-
}
114-
115-
if (isSharedProject.not()) {
116-
binaries.executable()
117-
}
118-
generateTypeScriptDefinitions()
119-
compilerOptions { configureKotlinJs() }
120-
testRuns.configureEach { executionTask.configure {} }
121-
}
122-
webDeps(project)
123-
}
124-
125-
fun KotlinMultiplatformExtension.wasmJsTarget(project: Project) =
126-
with(project) {
127-
wasmJs {
128-
// moduleName = "wasm-app"
129-
browser {
130-
val rootDirPath = project.rootDir.path
131-
val projectDirPath = project.projectDir.path
132-
commonWebpackConfig {
133-
cssSupport { enabled = true }
134-
// outputFileName = "wasm-app.js"
135-
// sourceMaps = true
136-
devServer =
137-
(devServer ?: KotlinWebpackConfig.DevServer()).apply {
138-
static =
139-
(static ?: mutableListOf()).apply {
140-
// Serve sources to debug inside the browser
141-
add(projectDirPath)
142-
add(rootDirPath)
143-
}
144-
}
145-
}
146-
147-
runTask { sourceMaps = false }
148-
testTask {
149-
enabled = true
150-
testLogging { configureLogEvents() }
151-
useKarma { useChromeHeadless() }
152-
}
153-
}
154-
155-
if (isSharedProject.not()) {
156-
binaries.executable()
157-
}
158-
generateTypeScriptDefinitions()
159-
compilerOptions { configureKotlinJs() }
160-
testRuns.configureEach { executionTask.configure {} }
161-
}
162-
webDeps(project)
163-
}
123+
fun KotlinMultiplatformExtension.wasmJsTarget(project: Project) {
124+
wasmJs { webConfig(project) }
125+
webDeps(project)
126+
}
164127

165128
fun KotlinMultiplatformExtension.wasmWasiTarget(project: Project) =
166129
with(project) {

plugins/project/src/main/kotlin/common/ProjectExtns.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,7 +551,7 @@ fun TestLoggingContainer.configureLogEvents() {
551551
}
552552

553553
fun KotlinJsCompilerOptions.configureKotlinJs() {
554-
freeCompilerArgs.addAll("-Xir-per-file")
554+
freeCompilerArgs.addAll("-Xir-per-file", "-Xes-long-as-bigint")
555555
target = "es2015"
556556
// sourceMap = true
557557
// sourceMapEmbedSources = "always"

plugins/project/src/main/kotlin/dev.suresh.plugin.kotlin.mpp.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ plugins {
2828
configurations.configureEach { resolutionStrategy { failOnNonReproducibleResolution() } }
2929

3030
kotlin {
31-
applyDefaultHierarchyTemplate()
3231
jvmToolchain { configureJvmToolchain(project) }
3332
compilerOptions { configureKotlinCommon(project) }
33+
applyDefaultHierarchyTemplate()
3434

3535
@OptIn(org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation::class)
3636
abiValidation {

sandbox/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ org.gradle.unsafe.isolated-projects=false
1616
kotlin.code.style=official
1717
kotlin.daemon.jvmargs=--enable-native-access=ALL-UNNAMED
1818
kotlin.jvm.target.validation.mode=warning
19+
kotlin.incremental.jvm.fir=true
1920
kotlin.build.report.output=build_scan
2021
kotlinx.atomicfu.enableJvmIrTransformation=true
2122
kotlinx.atomicfu.enableNativeIrTransformation=true

0 commit comments

Comments
 (0)