Skip to content

chirontt/lwjgl3-helloworld-native

Repository files navigation

lwjgl3-helloworld demo + GraalVM native image

HelloWorld demo for LWJGL 3, compiled to native executable by GraalVM native-image utility.

	

Gradle/Maven wrappers & build scripts are provided for building the project, which requires JDK 11+ or GraalVM 21+ (for native image).

GraalVM pre-requisites

The GraalVM native-image page shows how to set up GraalVM and its native-image utility for common platforms. Gluon also provides some setup details for GraalVM native-image creation.

The GraalVM native-image utility will use the configuration files in src/main/resources/META-INF/native-image folder to assist in the native-image generation.

Gradle build tasks

To build and run the HelloWorld demo in standard JVM with Gradle, execute the run task:

gradlew run

To see some debug info generated by LWJGL, run it with relevant system properties to show some debug messages in the console:

gradlew run -Dorg.lwjgl.util.Debug=true

The above tasks can use any standard JDK 11+.

To generate native executable, GraalVM 21+ need be set up as mentioned in GraalVM pre-requisites section above.

Once GraalVM is set up and available in the path, run the nativeCompile task:

gradlew nativeCompile

The nativeCompile task would take a while to compile the demo source code and link them with the LWJGL libraries into a native executable file. The resulting lwjgl3-helloworld executable file is:

build/native/nativeCompile/lwjgl3-helloworld

(or if building on a Windows machine:

build\native\nativeCompile\lwjgl3-helloworld.exe

)

which can then be run directly:

./build/native/nativeCompile/lwjgl3-helloworld

or, run it with relevant system properties to see some debug info in the console:

./build/native/nativeCompile/lwjgl3-helloworld -Dorg.lwjgl.util.Debug=true

(or if building on a Windows machine:

build\native\nativeCompile\lwjgl3-helloworld.exe
build\native\nativeCompile\lwjgl3-helloworld.exe -Dorg.lwjgl.util.Debug=true

)

Maven build tasks

To build and run the HelloWorld demo in standard JVM with Maven, execute the compile then exec:exec tasks:

mvnw compile
mvnw exec:exec

To see some debug info generated by LWJGL, run it with relevant system properties to show some debug messages in the console:

mvnw exec:exec -Dsys.props="-Dorg.lwjgl.util.Debug=true"

The above tasks can use any standard JDK 11+.

To generate native executable, GraalVM 21+ need be set up as mentioned in GraalVM pre-requisites section above.

Once GraalVM is set up and available in the path, run the package task:

mvnw package

The package task would take a while to compile the demo source code and link them with the LWJGL libraries into an executable file. The resulting lwjgl3-helloworld executable file is:

target/lwjgl3-helloworld

(or if building on a Windows machine:

target\lwjgl3-helloworld.exe

)

which can then be run directly:

./target/lwjgl3-helloworld

or, run it with relevant system properties to see some debug info in the console:

./target/lwjgl3-helloworld -Dorg.lwjgl.util.Debug=true

(or if building on a Windows machine:

target\lwjgl3-helloworld.exe
target\lwjgl3-helloworld.exe -Dorg.lwjgl.util.Debug=true

)

About

HelloWorld demo for LWJGL 3, compiled to native executable by GraalVM native-image utility.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages