initial engine commit
This commit is contained in:
54
lwjgl3/nativeimage.gradle
Normal file
54
lwjgl3/nativeimage.gradle
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
project(":lwjgl3") {
|
||||
apply plugin: "org.graalvm.buildtools.native"
|
||||
|
||||
graalvmNative {
|
||||
binaries {
|
||||
main {
|
||||
imageName = appName
|
||||
mainClass = project.mainClassName
|
||||
requiredVersion = '23.0'
|
||||
buildArgs.add("-march=compatibility")
|
||||
jvmArgs.addAll("-Dfile.encoding=UTF8")
|
||||
sharedLibrary = false
|
||||
resources.autodetect()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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":[]
|
||||
}"""
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user