Skip to content

Commit cf670a8

Browse files
committed
feat: gvm features in elide native image builder
Signed-off-by: Sam Gammon <[email protected]>
1 parent c7b8a7d commit cf670a8

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

packages/builder/src/main/kotlin/elide/tooling/gvm/nativeImage/NativeImageBuildConfigurator.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ import elide.tooling.jvm.resolver.MavenAetherResolver
4747
import elide.tooling.project.ElideProject
4848
import elide.tooling.project.manifest.ElidePackageManifest.*
4949

50-
private val EMBEDDED_GVM_VERSION = "25.0.0"
50+
private const val EMBEDDED_GVM_VERSION = "25.0.0"
5151

5252
private val withheldNativeJarNames = sortedSetOf(
5353
"svm-$EMBEDDED_GVM_VERSION.jar",
@@ -221,6 +221,10 @@ internal class NativeImageBuildConfigurator : BuildConfigurator {
221221
"-D${it.key}=${it.value}"
222222
})
223223

224+
artifact.options.features.forEach {
225+
add("--feature=$it")
226+
}
227+
224228
// add user's extra compile flags
225229
addAllStrings(artifact.options.flags)
226230

packages/tooling/src/main/kotlin/elide/tooling/project/manifest/ElidePackageManifest.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,7 @@ public data class ElidePackageManifest(
597597
val cflags: List<String> = emptyList(),
598598
val ldflags: List<String> = emptyList(),
599599
val defs: Map<String, String> = emptyMap(),
600+
val features: List<String> = emptyList(),
600601
)
601602

602603
@JvmRecord @Serializable public data class NativeImageSettings(

packages/tooling/src/main/pkl/NativeImage.pkl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ open class NativeImageOptions {
9393
/// PGO (Profiling Guided Optimization) settings.
9494
pgo: ProfileGuidedOptimization = new {}
9595

96+
/// Enabled compiler features.
97+
features: Listing<_jvm.JvmClass> = new {}
98+
9699
/// Extra flags to pass to the Native Image compiler; added to all project targets.
97100
flags: Listing<NativeImageFlag> = new {}
98101

0 commit comments

Comments
 (0)