mirror of
https://github.com/apple/pkl.git
synced 2026-04-25 01:38:34 +02:00
fix: downstream native-image builds (#914)
SVM (SubstrateVM) compile configuration classes must be included within the `cli` jar to prevent downstream `native-image` builds from failing. Fat JARs cannot be used with `native-image`, so these classes can still safely be excluded here. Fixes and closes apple/pkl#907 Signed-off-by: Sam Gammon <sam@elide.dev>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
|
* Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -80,6 +80,9 @@ tasks.shadowJar {
|
|||||||
|
|
||||||
configurations = listOf(project.configurations.runtimeClasspath.get())
|
configurations = listOf(project.configurations.runtimeClasspath.get())
|
||||||
|
|
||||||
|
// not required at runtime / fat JARs can't be used in native-image builds anyway
|
||||||
|
exclude("org/pkl/cli/svm/**")
|
||||||
|
|
||||||
exclude("META-INF/maven/**")
|
exclude("META-INF/maven/**")
|
||||||
exclude("META-INF/upgrade/**")
|
exclude("META-INF/upgrade/**")
|
||||||
exclude("META-INF/versions/19/**")
|
exclude("META-INF/versions/19/**")
|
||||||
|
|||||||
@@ -81,12 +81,7 @@ dependencies {
|
|||||||
stagedWindowsAmd64Executable(executableDir("pkl-windows-amd64.exe"))
|
stagedWindowsAmd64Executable(executableDir("pkl-windows-amd64.exe"))
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.jar {
|
tasks.jar { manifest { attributes += mapOf("Main-Class" to "org.pkl.cli.Main") } }
|
||||||
manifest { attributes += mapOf("Main-Class" to "org.pkl.cli.Main") }
|
|
||||||
|
|
||||||
// not required at runtime
|
|
||||||
exclude("org/pkl/cli/svm/**")
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.javadoc { enabled = false }
|
tasks.javadoc { enabled = false }
|
||||||
|
|
||||||
@@ -157,7 +152,7 @@ tasks.check { dependsOn(testStartJavaExecutable) }
|
|||||||
fun Exec.configureExecutable(
|
fun Exec.configureExecutable(
|
||||||
graalVm: BuildInfo.GraalVm,
|
graalVm: BuildInfo.GraalVm,
|
||||||
outputFile: Provider<RegularFile>,
|
outputFile: Provider<RegularFile>,
|
||||||
extraArgs: List<String> = listOf()
|
extraArgs: List<String> = listOf(),
|
||||||
) {
|
) {
|
||||||
inputs
|
inputs
|
||||||
.files(sourceSets.main.map { it.output })
|
.files(sourceSets.main.map { it.output })
|
||||||
@@ -240,7 +235,7 @@ val macExecutableAmd64: TaskProvider<Exec> by
|
|||||||
dependsOn(":installGraalVmAmd64")
|
dependsOn(":installGraalVmAmd64")
|
||||||
configureExecutable(
|
configureExecutable(
|
||||||
buildInfo.graalVmAmd64,
|
buildInfo.graalVmAmd64,
|
||||||
layout.buildDirectory.file("executable/pkl-macos-amd64")
|
layout.buildDirectory.file("executable/pkl-macos-amd64"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -251,7 +246,7 @@ val macExecutableAarch64: TaskProvider<Exec> by
|
|||||||
configureExecutable(
|
configureExecutable(
|
||||||
buildInfo.graalVmAarch64,
|
buildInfo.graalVmAarch64,
|
||||||
layout.buildDirectory.file("executable/pkl-macos-aarch64"),
|
layout.buildDirectory.file("executable/pkl-macos-aarch64"),
|
||||||
listOf("-H:+AllowDeprecatedBuilderClassesOnImageClasspath")
|
listOf("-H:+AllowDeprecatedBuilderClassesOnImageClasspath"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -261,7 +256,7 @@ val linuxExecutableAmd64: TaskProvider<Exec> by
|
|||||||
dependsOn(":installGraalVmAmd64")
|
dependsOn(":installGraalVmAmd64")
|
||||||
configureExecutable(
|
configureExecutable(
|
||||||
buildInfo.graalVmAmd64,
|
buildInfo.graalVmAmd64,
|
||||||
layout.buildDirectory.file("executable/pkl-linux-amd64")
|
layout.buildDirectory.file("executable/pkl-linux-amd64"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,7 +276,7 @@ val linuxExecutableAarch64: TaskProvider<Exec> by
|
|||||||
// Ensure compatibility for kernels with page size set to 4k, 16k and 64k
|
// Ensure compatibility for kernels with page size set to 4k, 16k and 64k
|
||||||
// (e.g. Raspberry Pi 5, Asahi Linux)
|
// (e.g. Raspberry Pi 5, Asahi Linux)
|
||||||
"-H:PageSize=65536"
|
"-H:PageSize=65536"
|
||||||
)
|
),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -297,7 +292,7 @@ val alpineExecutableAmd64: TaskProvider<Exec> by
|
|||||||
configureExecutable(
|
configureExecutable(
|
||||||
buildInfo.graalVmAmd64,
|
buildInfo.graalVmAmd64,
|
||||||
layout.buildDirectory.file("executable/pkl-alpine-linux-amd64"),
|
layout.buildDirectory.file("executable/pkl-alpine-linux-amd64"),
|
||||||
listOf("--static", "--libc=musl")
|
listOf("--static", "--libc=musl"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -307,7 +302,7 @@ val windowsExecutableAmd64: TaskProvider<Exec> by
|
|||||||
configureExecutable(
|
configureExecutable(
|
||||||
buildInfo.graalVmAmd64,
|
buildInfo.graalVmAmd64,
|
||||||
layout.buildDirectory.file("executable/pkl-windows-amd64"),
|
layout.buildDirectory.file("executable/pkl-windows-amd64"),
|
||||||
listOf("-Dfile.encoding=UTF-8")
|
listOf("-Dfile.encoding=UTF-8"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user