Material

Setting Windows .exe Icons Without Windows

Setting a Windows executable's icon on a platform other than Windows is incredibly annoying, because there's a dozen weird edge cases to Windows resource layout, papered over by the Win32 API and build tools.

Buried in their Atom editor, GitHub has produced rcedit, a Windows executable that does nothing but set the icon and the product version resource strings. It still uses this API, but because it does nothing else — and is written in plain C and C++ and not some uselessly abstracted pile of C# — it runs without a hitch in basically any configuration of Wine.

There is also a precompiled binary as part of some Node API wrapper for it. It's licensed under an MIT-esque license you can include the binary in your build process directly.

(I've also updated my Make icon-making guide accordingly.)