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
lib
andbin
projects, wherebin
depends onlib
The 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
lib
entirely.
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.