I’d like to properly announce the tooling I’ve been using to cross-compile my Haskell games from Linux to Windows - macaroni.dev / macaroni.nix · GitLab
Fundamentally, macaroni.nix
is just haskell.nix
+ some overlays to package certain native libraries for cross-compilation. I’ve been slowly adding support for more and more gamedev libraries with native dependencies. The current set of “officially” supported libraries are:
-
sdl2
(+sdl2-ttf
) sdl-gpu
(+SDL_FontCache
)gloss
h-raylib
-
OpenAL
andALUT
cute-sound
(fwiw - pure Haskell libraries already Just Work cross-compilation-wise with haskell.nix
)
I’ve been developing and using this build tooling for several years now but have been holding out on sharing it broadly because it had some rough edges (e.g. any library or project that used TH that required DLL loading would hang due to an iserv bug).
But now I think it’s finally solid enough to release on an unsuspecting world If you are doing Linux Haskell gamedev, now you don’t have to worry about wrangling a Windows build. And hopefully someday, the project will grow to support more target platforms.
There’s some documentation in the repo, and feel free to cut me an issue if you have questions, ideas, or need help. You can also find me in the Haskell Gamedev Discord.
Also, a big shout-out to the haskell.nix
project. It does a lot of heavy lifting, and the contributors have been very helpful in the issue tracker.