I had to build a Windows app (for scientists...) and while we do love to complain a lot about fragmentation and all the issues we have on Linux: Windows is a different kind of hell, with fragmentation just being at a different spot!

Creating CI for Windows was absolute hell, vcpkg is nice, but without caching slows down automation a lot, trying to build an MSI package was a very bad idea (what a crazy design from a Linux perspective!), getting anything reproducible isn't easy... 1/2

...so, therefore, huge shoutout to MSYS2 which was my salvation in so many ways! Automating Windows builds was really easy, and for the actual build steps I could even use a familiar UNIX-y environment, while still getting a fully native Windows binary out. Not sure why I didn't use this sooner for past projects!

Of course, the Linux builds of the same app were up and running in seconds, thanks to distro packages and great CI πŸ˜‰ 2/2

https://www.msys2.org/

MSYS2

Software Distribution and Building Platform for Windows

@matk KDE's Craft which basically automates building and packaging KDE software on Windows with a single recipe uses MSYS2 + NSIS under the hood to do what it does.

@herzenschein That's basically what I ended up with for my Qt app (just with InnoSetup instead of NSIS since the former had a nice GitHub Action). Using MSI was strongly discouraged by everyone, and I now know why ^^

Definitely kudos to the people maintaining MSYS2 and its packages, it is a great piece of software πŸ™‚

@matk @herzenschein The Windows conventional installer stacks these days are all MSI based except NSIS and InnoSetup. I personally used NSIS for Windows stuff, but lots of people use WiX or layers on top of WiX for creating installer packages. Fedora maintains a package for cross-compiling NSIS installers from Linux, so I continue to use NSIS for my Windows stuff.

WiX is piles of pain, and getting help from the WiX folks is... unfun.