3 ms·
I've tried a lot of build systems but IMHO CMake is the only one where you can get away with just using CMake and the platforms target compiler. The rest includ
by marenkay 7y ago
I've tried a lot of build systems but IMHO CMake is the only one where you can get away with just using CMake and the platforms target compiler. The rest includes additional pain points, more stuff to set up and configure.
What's missing from my point is the community getting together and defining a canonical way to actually build CMake projects for all use cases. If you look at github, there is hardly any project using CMake to the extent of its abilities, or things stuck in CMake 2 days. In commercial scenarios I've seen even worse.
Package manager make this even worse since all of them neglect the fact that there actually may be packages available on a platform via existing package managers. What puts me of about vcpkg or conan is that on a Linux box this should just allow one to use yum/apt/etc instead of manually downloading from yet another 3rd party. Having yet another repository is pretty much only usable for non-commercial projects where things such as long-term support barely have a meaning.
- humanrebar 7y ago> this should just allow one to use yum/apt/etc instead of manually downloading from yet another 3rd party That wouldn't work on its own. You also need something like pkg-config so you know how to build against the packages. You need to know about indirect dependencies and include search paths for instance.
- IshKebab 7y ago> there is hardly any project using CMake to the extent of its abilities I disagree. Every CMake project I've worked on does some weird thing that you couldn't do with Meson or XMake or whatever. I'd be happy with CMake being the defacto C++ build system if its language wasn't so god awful. The most unforgivable things are that `if()` is broken and there's no real list type (they're just semicolon-delimited strings, with extra complications). In fact everything is a string.