-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle.kts
84 lines (75 loc) · 2.43 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Copyright (C) 2024, Henry Addo
// SPDX-License-Identifier: Apache-2.0
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
plugins {
alias(libs.plugins.kotlin.multiplatform)
application
id("plugins.conventions.spotless")
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.compose)
alias(libs.plugins.kotlin.plugin.compose)
}
val jdk = libs.versions.jdk.get().toInt()
val mainClassStr = "com.addhen.job.search.CliAppKt"
tasks.withType<KotlinCompilationTask<*>>().configureEach {
compilerOptions {
progressiveMode.set(true)
optIn.add("kotlin.ExperimentalStdlibApi")
freeCompilerArgs.add("-Xexpect-actual-classes")
if (this is KotlinJvmCompilerOptions) {
freeCompilerArgs.add("-Xjsr305=strict")
jvmTarget.set(JvmTarget.fromTarget(jdk.toString()))
}
}
}
java { toolchain { languageVersion.set(JavaLanguageVersion.of(jdk)) } }
application { mainClass.set(mainClassStr) }
kotlin {
jvm()
sourceSets {
commonMain {
dependencies {
implementation(compose.runtime)
implementation(compose.material3)
implementation(compose.runtime)
implementation(compose.material3)
implementation(libs.compose.markdown)
implementation(libs.compose.markdown.m3)
implementation(libs.kotlinx.coroutines)
implementation(libs.ksoup)
implementation(libs.ksoup.network)
}
}
jvmMain {
dependencies {
implementation(compose.runtime)
// To silence this log https://www.slf4j.org/codes.html#StaticLoggerBinder
implementation(libs.slf4jNop)
// https://github.com/ajalt/clikt/issues/438
implementation(libs.clikt)
implementation(compose.desktop.currentOs)
}
}
}
targets.withType<KotlinJvmTarget> {
// Needed for 'application' plugin.
withJava()
}
}
// Fat jar configuration to run this as a standalone jar
// Configuration borrowed from https://stackoverflow.com/a/49284432/3323598
tasks.named<Jar>("jar") {
manifest { attributes(mapOf("Main-Class" to mainClassStr)) }
from(
provider {
configurations.compileClasspath
.get()
.filter { it.exists() }
.map { if (it.isDirectory) it else zipTree(it) }
}
)
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}