A summary of the relevant changes of this pull request:
JOGL got updated to version 2.4.0. This allows running RoboViz on the latest version of macOS (Ventura 13.6) and therefore fixes #132.
The minimum required Java version is now 17 (possible thanks to the new version of JOGL). Over are the days of fiddling around with an old Java 8 version to get RoboViz to work. (At least, that is what I'm hoping for.)
Some of the new features, such as records and pattern matching with instanceof, are already in use.
Other dependencies have been updated as well.
The Gradle build script was extended with a binDir task that creates the bin directory with all the necessary files. The old build.sh script is only kept for backwards compatibility. Instead, you can just use gradle binDir now.
A macOS app bundle can now be created using the macOSApp task. For example, this allows RoboViz to be placed in the dock. It mostly appears in the same way as other GUI applications on macOS.
The roboviz.sh script got simplified.
Running RoboViz without a config file being present should now work as well. This was a requirement for the macOS app bundle to work properly. If the config is not present and you try to edit it using the built-in editor, a new config can automatically be initialized in your home directory (at your wish).
A few more notes:
Meanwhile, JOGL 2.5.0 is available. I haven't upgraded to that version yet, as that currently breaks RoboViz. We can't change into the log mode anymore. And the rendered content looks horrible, as everything is either too small or too big. I'll try to do that upgrade in the future. But that requires some work again that exceeds the scope of this pull request. For now, I'm happy that RoboViz runs again on macOS.
I've experienced a few occasional crashes when running RoboViz on macOS with a Java version newer than 17. (I was using the Eclipse Temurin builds.) It mostly works. Sometimes, however, RoboViz would just crash on startup or when opening the configuration window. In most cases, I tried again, and it worked the next few times. Let me know if you experience similar issues. If this is just happening on macOS with Java versions newer than 17, I'd say that this is not a problem for now. It's certainly better than not being able to run RoboViz at all. Also, this is something that might already be fixed with JOGL 2.5.0. (I didn't really investigate into that.)
clang-format cannot handle the enhanced switch statements/expressions yet. If you'll insert such a switch, clang-format is going to stop formatting the rest of the source file. For that reason, I refrained from using those already.
Testing and any kind of feedback are very appreciated. Thanks.
A summary of the relevant changes of this pull request:
binDir
task that creates thebin
directory with all the necessary files. The oldbuild.sh
script is only kept for backwards compatibility. Instead, you can just usegradle binDir
now.macOSApp
task. For example, this allows RoboViz to be placed in the dock. It mostly appears in the same way as other GUI applications on macOS.roboviz.sh
script got simplified.A few more notes:
Testing and any kind of feedback are very appreciated. Thanks.