both nd and ngui now acquire semantic versioning recorded at the build
time. they also report the version at startup and -v flag.
this is useful for a release process and to avoid potential
compatibility issues in the future.
in a regular build flow, the version is taken from a git tag using the
following command:
git -C . describe --match 'v*.*.*' --tags --abbrev=8
in a non-standard scenario where git isn't available, the version can
be provided on the command line during build like so:
zig build -Dversion=1.2.3
if both git and command line supplied versions are available, they must
match.