Multi-OS build with Appveyor and Travis CI
And it also allows C compiling to binary, as long as you can get the right setup.
I use this with Node better-sqlite3, where prebuilt binary for Windows is not working (with Electron), and I am running development on MacOS.
This is also a possibility with Python
py2app, and Golang with cgo.
Not yet sure about packaging Java…