|
|
|
|
|
by lukasco
25 days ago
|
|
Cross platform building and packaging in C/C++ is such a hot mess. There's so many dimensions to unpack I don't even really know where to start. (I say this as the person who has been packaging GIMP for Mac for the last good number of years.) OK, here's a few (with a MacOS slant):
- compilers (gcc, clang, and their many versions)
- libc (and friends) compatibility (I can't say I even ever delved into this one, but it's bit me)
- package manager (macports, homebrew)
- building for backward compatibility; what's the earliest MacOS version to support (the package managers either like to build for the OS they are running on, or force you -- yes I'm looking at you homebrew)
- dependency and dependency version management (love you pkgconfig)
- build system for each package (cmake, autotools, meson, ...)
- bundling everything into an application
- turning that application into a Mac application
- code signing and notarization
- creating the DMG
- debug symbols
- crash detection and notification
Like right now, libheif on 26 can't be built for 11 and it's not clear why (or maybe they just fixed it...but it's been weeks) |
|