This is a simple template demonstrating building a Scala Native binary and releasing it on Github release for all natively supported platforms: Windows (amd64), Linux (amd64, arm64), MacOS (arm64, amd64).
Binaries are given descriptive platform-specific names, and upon creating a Github release
for a tag starting with v, binaries for all platforms are uploaded to release artifacts.
The project itself
-
Uses latest Scala 3
-
Has a
libandbinprojects, wherebindepends onlibThe expectation is that most of the functionality of the binary is exposed as a library, that can be published to Maven Central, and binary merely provides a CLI interface to invoke that functionality.
You are of course free to remove the
libentirely.
Naming conventions loosely follow Coursier's practices.
This template includes very basic setup for debugging with VS Code and CodeLLDB extension.
You should have a Debug configuration available, which will automatically build a binary by invoking sbtn buildBinary command -
so make sure you have sbtn installed (run sbt installSbtn).
Please note that debugging information in Scala Native is very experimental, so don't expect a rich debugging experience you can get for LLDB-native languages like C or C++.
Some functionality will work. If you spot bugs, please raise an issue on Scala Native, with a reproduction and possibly a screenshot from the debugger.
