64 lines
2.1 KiB
Groovy
64 lines
2.1 KiB
Groovy
|
|
project(":lwjgl3") {
|
|
apply plugin: "org.graalvm.buildtools.native"
|
|
|
|
dependencies {
|
|
implementation "io.github.berstanio:gdx-svmhelper-backend-lwjgl3:$graalHelperVersion"
|
|
implementation "io.github.berstanio:gdx-svmhelper-extension-box2d:$graalHelperVersion"
|
|
}
|
|
graalvmNative {
|
|
binaries {
|
|
main {
|
|
imageName = appName
|
|
mainClass = project.mainClassName
|
|
requiredVersion = '23.0'
|
|
buildArgs.add("-march=compatibility")
|
|
jvmArgs.addAll("-Dfile.encoding=UTF8")
|
|
sharedLibrary = false
|
|
}
|
|
}
|
|
}
|
|
|
|
run {
|
|
doNotTrackState("Running the app should not be affected by Graal.")
|
|
}
|
|
|
|
// Modified from https://lyze.dev/2021/04/29/libGDX-Internal-Assets-List/ ; thanks again, Lyze!
|
|
// This creates a resource-config.json file based on the contents of the assets folder (and the libGDX icons).
|
|
// This file is used by Graal Native to embed those specific files.
|
|
// This has to run before nativeCompile, so it runs at the start of an unrelated resource-handling command.
|
|
generateResourcesConfigFile.doFirst {
|
|
def assetsFolder = new File("${project.rootDir}/assets/")
|
|
def lwjgl3 = project(':lwjgl3')
|
|
def resFolder = new File("${lwjgl3.projectDir}/src/main/resources/META-INF/native-image/${lwjgl3.ext.appName}")
|
|
resFolder.mkdirs()
|
|
def resFile = new File(resFolder, "resource-config.json")
|
|
resFile.delete()
|
|
resFile.append(
|
|
"""{
|
|
"resources":{
|
|
"includes":[
|
|
{
|
|
"pattern": ".*(""")
|
|
// This adds every filename in the assets/ folder to a pattern that adds those files as resources.
|
|
fileTree(assetsFolder).each {
|
|
// The backslash-Q and backslash-E escape the start and end of a literal string, respectively.
|
|
resFile.append("\\\\Q${it.name}\\\\E|")
|
|
}
|
|
// We also match all of the window icon images this way and the font files that are part of libGDX.
|
|
resFile.append(
|
|
"""libgdx.+\\\\.png|lsans.+)"
|
|
}
|
|
]},
|
|
"bundles":[]
|
|
}"""
|
|
)
|
|
}
|
|
}
|
|
|
|
project(":core") {
|
|
dependencies {
|
|
implementation "io.github.berstanio:gdx-svmhelper-annotations:$graalHelperVersion"
|
|
}
|
|
}
|