Skip to content

Commit 7eb2c5c

Browse files
committed
chore: another kotlin dsl refactorings
1 parent 73f281e commit 7eb2c5c

20 files changed

+478
-368
lines changed

gradle.properties

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ org.gradle.caching=true
55
org.gradle.daemon=true
66
org.gradle.configureondemand=true
77
org.gradle.configuration-cache=false
8+
org.gradle.configuration-cache.problems=warn
89
org.gradle.kotlin.dsl.allWarningsAsErrors=true
910
# org.gradle.logging.stacktrace=all
1011
# org.gradle.unsafe.isolated-projects=true
11-
# org.gradle.configuration-cache.problems=warn
1212
# org.gradle.configuration-cache.max-problems=5
1313
# org.gradle.welcome=never
1414
# org.gradle.console=rich
@@ -43,6 +43,7 @@ ksp.version.check=false
4343
# Compose
4444
org.jetbrains.compose.experimental.wasm.enabled=true
4545
org.jetbrains.compose.experimental.macos.enabled=true
46+
kotlin.mpp.filterResourcesByExtension=true
4647
# compose.resources.always.generate.accessors=true
4748

4849
# Project
@@ -55,7 +56,9 @@ semver.commitsMaxCount=100
5556
debug=false
5657

5758
# Other projects
58-
nativeBuild=false
5959
composeBuild=true
6060
springBoot=false
61+
nativeBuild=false
62+
nativeWinTarget=false
63+
6164

gradle/build-logic/build.gradle.kts

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99
alias(libs.plugins.jte)
1010
alias(libs.plugins.bestpractices)
1111
alias(libs.plugins.benmanes)
12+
alias(libs.plugins.spotless)
1213
// alias(libs.plugins.kotlin.dsl)
1314
}
1415

@@ -31,19 +32,34 @@ kotlin {
3132
"-Xno-param-assertions",
3233
"-Xno-call-assertions",
3334
"-Xno-receiver-assertions")
34-
optIn =
35-
listOf(
36-
"kotlin.ExperimentalStdlibApi",
37-
"kotlin.time.ExperimentalTime",
38-
"kotlin.io.encoding.ExperimentalEncodingApi",
39-
"kotlinx.validation.ExperimentalBCVApi",
40-
"kotlinx.coroutines.ExperimentalCoroutinesApi",
41-
"kotlinx.serialization.ExperimentalSerializationApi",
42-
"kotlinx.validation.ExperimentalBCVApi",
43-
"org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi",
44-
"org.jetbrains.kotlin.gradle.ExperimentalWasmDsl",
45-
"org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDistributionDsl",
46-
"org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDceDsl")
35+
optIn.addAll(
36+
"kotlin.ExperimentalStdlibApi",
37+
"kotlin.time.ExperimentalTime",
38+
"kotlin.io.encoding.ExperimentalEncodingApi",
39+
"kotlinx.validation.ExperimentalBCVApi",
40+
"kotlinx.coroutines.ExperimentalCoroutinesApi",
41+
"kotlinx.serialization.ExperimentalSerializationApi",
42+
"org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi",
43+
"org.jetbrains.kotlin.gradle.ExperimentalWasmDsl",
44+
"org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDistributionDsl",
45+
"org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalDceDsl")
46+
}
47+
}
48+
49+
spotless {
50+
val ktfmtVersion = libs.versions.ktfmt.get()
51+
kotlin {
52+
target("src/**/*.kts", "src/**/*.kt")
53+
ktfmt(ktfmtVersion)
54+
trimTrailingWhitespace()
55+
endWithNewline()
56+
}
57+
58+
kotlinGradle {
59+
target("*.kts")
60+
ktfmt(ktfmtVersion)
61+
trimTrailingWhitespace()
62+
endWithNewline()
4763
}
4864
}
4965

@@ -67,9 +83,8 @@ tasks {
6783
register("cleanAll") {
6884
description = "Cleans all projects"
6985
group = LifecycleBasePlugin.CLEAN_TASK_NAME
70-
7186
allprojects.mapNotNull { it.tasks.findByName("clean") }.forEach { dependsOn(it) }
72-
doLast { delete(layout.buildDirectory) }
87+
// doLast { delete(layout.buildDirectory) }
7388
}
7489
}
7590

gradle/build-logic/src/main/kotlin/common/MultiPlatformExtns.kt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,7 @@ fun KotlinMultiplatformExtension.jvmTarget() {
9292

9393
mainRun {
9494
mainClass = libs.versions.app.mainclass
95-
val jvmArgs: String? by project
96-
val args = jvmArgs?.split(",") ?: jvmArguments(appRun = true)
97-
setArgs(args)
95+
setArgs(jvmRunArgs)
9896
}
9997

10098
// val test by testRuns.existing
@@ -189,6 +187,8 @@ fun KotlinMultiplatformExtension.wasmJsTarget() {
189187
wasmJs {
190188
// moduleName = "wasm-app"
191189
browser {
190+
val rootDirPath = project.rootDir.path
191+
val projectDirPath = project.projectDir.path
192192
commonWebpackConfig {
193193
cssSupport { enabled = true }
194194
// outputFileName = "wasm-app.js"
@@ -198,8 +198,8 @@ fun KotlinMultiplatformExtension.wasmJsTarget() {
198198
static =
199199
(static ?: mutableListOf()).apply {
200200
// Serve sources to debug inside the browser
201-
add(project.rootDir.path)
202-
add(project.projectDir.path)
201+
add(rootDirPath)
202+
add(projectDirPath)
203203
}
204204
}
205205
}
@@ -256,7 +256,11 @@ fun KotlinMultiplatformExtension.allNativeTargets(configure: KotlinNativeTarget.
256256
macosArm64 { configure() }
257257
linuxX64 { configure() }
258258
linuxArm64 { configure() }
259-
mingwX64 { configure() }
259+
260+
val nativeWinTarget: String? by project
261+
if (nativeWinTarget.toBoolean()) {
262+
mingwX64 { configure() }
263+
}
260264
}
261265
}
262266

gradle/build-logic/src/main/kotlin/common/ProjectExtns.kt

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -145,12 +145,6 @@ val Project.githubToken
145145
val Project.isKotlinMultiplatformProject
146146
get() = plugins.hasPlugin("org.jetbrains.kotlin.multiplatform")
147147

148-
val Project.isKotlinJvmProject
149-
get() = plugins.hasPlugin("org.jetbrains.kotlin.jvm")
150-
151-
val Project.isKotlinJsProject
152-
get() = plugins.hasPlugin("org.jetbrains.kotlin.js")
153-
154148
@Suppress("UnstableApiUsage")
155149
val Project.gradleSystemProperties
156150
get() =
@@ -333,6 +327,16 @@ fun Project.jvmArguments(appRun: Boolean = false, headless: Boolean = true) = bu
333327
}
334328
}
335329

330+
/**
331+
* JVM arguments for running java/kotlin applications. If the user has provided a custom
332+
* *jvmArgs*(`-PjvmArgs=...`) gradle property, it will be used instead of the default [jvmArguments]
333+
*/
334+
val Project.jvmRunArgs
335+
get() = run {
336+
val jvmArgs: String? by this
337+
jvmArgs?.split(",") ?: jvmArguments(appRun = true)
338+
}
339+
336340
/**
337341
* Returns the dependency string for the specified Kotlin wrapper.
338342
*
@@ -408,25 +412,24 @@ fun KotlinCommonCompilerOptions.configureKotlinCommon() {
408412
"-Xcontext-receivers",
409413
"-Xexpect-actual-classes",
410414
"-Xskip-prerelease-check",
411-
// "-Xsupress-warning=WARNING_NAME"
415+
// "-Xsuppress-warning=CONTEXT_RECEIVERS_DEPRECATED"
412416
// "-P",
413417
// "plugin:...=..."
414418
)
415-
optIn =
416-
listOf(
417-
"kotlin.ExperimentalStdlibApi",
418-
"kotlin.contracts.ExperimentalContracts",
419-
"kotlin.ExperimentalUnsignedTypes",
420-
"kotlin.io.encoding.ExperimentalEncodingApi",
421-
"kotlin.time.ExperimentalTime",
422-
"kotlinx.coroutines.ExperimentalCoroutinesApi",
423-
"kotlinx.serialization.ExperimentalSerializationApi",
424-
"kotlin.ExperimentalMultiplatform",
425-
"kotlin.js.ExperimentalJsExport",
426-
"kotlin.experimental.ExperimentalNativeApi",
427-
"kotlinx.cinterop.ExperimentalForeignApi",
428-
// "org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi",
429-
)
419+
optIn.addAll(
420+
"kotlin.ExperimentalStdlibApi",
421+
"kotlin.contracts.ExperimentalContracts",
422+
"kotlin.ExperimentalUnsignedTypes",
423+
"kotlin.io.encoding.ExperimentalEncodingApi",
424+
"kotlin.time.ExperimentalTime",
425+
"kotlinx.coroutines.ExperimentalCoroutinesApi",
426+
"kotlinx.serialization.ExperimentalSerializationApi",
427+
"kotlin.ExperimentalMultiplatform",
428+
"kotlin.js.ExperimentalJsExport",
429+
"kotlin.experimental.ExperimentalNativeApi",
430+
"kotlinx.cinterop.ExperimentalForeignApi",
431+
// "org.jetbrains.kotlin.compiler.plugin.ExperimentalCompilerApi",
432+
)
430433
}
431434

432435
context(Project)
@@ -588,16 +591,17 @@ fun KotlinSourceSet.ksp(dependencyNotation: Any) {
588591

589592
/** Returns the path of the dependency jar in runtime classpath. */
590593
context(Project)
591-
val ExternalDependency.dependencyPath
592-
get() =
593-
configurations
594-
.named("runtimeClasspath")
595-
.get()
596-
.resolvedConfiguration
597-
.resolvedArtifacts
598-
.find { it.moduleVersion.id.module == module }
599-
?.file
600-
?.path ?: error("Could not find $name in runtime classpath")
594+
val ExternalDependency.dependencyPath: Provider<String>
595+
get() = provider {
596+
configurations
597+
.named("runtimeClasspath")
598+
.get()
599+
.resolvedConfiguration
600+
.resolvedArtifacts
601+
.find { it.moduleVersion.id.module == module }
602+
?.file
603+
?.path
604+
}
601605

602606
/** Returns the application `run` command. */
603607
context(Project)

gradle/build-logic/src/main/kotlin/common/ServiceClient.kt

Lines changed: 0 additions & 103 deletions
This file was deleted.

0 commit comments

Comments
 (0)