Skip to content

Commit 4b675b9

Browse files
committed
native image support
1 parent 5af4856 commit 4b675b9

File tree

4 files changed

+624
-8
lines changed

4 files changed

+624
-8
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ kmpNativeCoroutines = "1.0.0-ALPHA-45"
2020
kmpObservableViewModel = "1.0.0-BETA-12"
2121
kstore = "1.0.0"
2222
ktor = "3.2.2"
23+
logbackClassic = "1.5.18"
2324
treemapChart = "0.1.3"
2425
voyager= "1.1.0-beta03"
2526
molecule = "2.1.0"
@@ -58,6 +59,7 @@ ktor-client-android = { group = "io.ktor", name = "ktor-client-android", version
5859
ktor-client-darwin = { group = "io.ktor", name = "ktor-client-darwin", version.ref = "ktor" }
5960
ktor-client-java = { group = "io.ktor", name = "ktor-client-java", version.ref = "ktor" }
6061

62+
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logbackClassic" }
6163
voyager = { module = "cafe.adriel.voyager:voyager-navigator", version.ref = "voyager" }
6264
harawata-appdirs = { module = "net.harawata:appdirs", version.ref = "harawata-appdirs" }
6365
koalaplot = { module = "io.github.koalaplot:koalaplot-core", version.ref = "koalaplot" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

mcp-server/build.gradle.kts

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,50 @@
1+
@file:Suppress("UnstableApiUsage")
2+
13
plugins {
24
alias(libs.plugins.kotlinJvm)
35
alias(libs.plugins.kotlinx.serialization)
46
alias(libs.plugins.shadowPlugin)
57
alias(libs.plugins.jib)
68
application
9+
id("org.graalvm.buildtools.native") version "0.11.0"
710
}
811

912
dependencies {
1013
implementation(libs.mcp.kotlin)
1114
implementation(libs.koin.core)
12-
implementation("ch.qos.logback:logback-classic:1.5.8")
1315
implementation(projects.composeApp)
16+
implementation(libs.logback.classic)
1417
}
1518

1619
java {
1720
toolchain {
18-
languageVersion = JavaLanguageVersion.of(17)
21+
languageVersion.set(JavaLanguageVersion.of(24))
22+
vendor.set(JvmVendorSpec.GRAAL_VM)
23+
nativeImageCapable.set(true)
1924
}
2025
}
2126

2227
application {
2328
mainClass = "McpServerKt"
2429
}
2530

26-
tasks.shadowJar {
27-
archiveFileName.set("serverAll.jar")
28-
archiveClassifier.set("")
29-
manifest {
30-
attributes["Main-Class"] = "McpServerKt"
31+
graalvmNative {
32+
agent {
33+
enabled.set(true)
34+
}
35+
36+
binaries {
37+
all {
38+
javaLauncher.set(javaToolchains.launcherFor {
39+
languageVersion.set(JavaLanguageVersion.of(24))
40+
vendor.set(JvmVendorSpec.GRAAL_VM)
41+
nativeImageCapable.set(true)
42+
})
43+
}
44+
named("main") {
45+
imageName.set("climate-trace-mcp")
46+
mainClass.set("MainKt")
47+
}
3148
}
3249
}
3350

0 commit comments

Comments
 (0)