I have an aversion to learning it because it seems like an abstraction of an abstraction and of little value. But I’d like to change my mind.
(Thanks for this btw, I was looking for something like this)
I have an aversion to learning it because it seems like an abstraction of an abstraction and of little value. But I’d like to change my mind.
(Thanks for this btw, I was looking for something like this)
Meson is the next runner up and it should come with a religious text about how the creator thinks software should work.
- is easily boostrappable
- works on OS without any kind of POSIX shell
- allow to extract, download, create file / directories in a cross-platform way (cmake extracts 7z, zip, .tar.gz and friends on every platform with a single command)
- allow to quickly parse and generate code with regexps without having to fight with whatever difference between versions of perl, rename, etc. there are on the host system
- does not require "quoting" every flag or source file (seriously, this is just a pain in most more recent BS)
- just works with everything that can be thrown at it and accommodates the project's way of handling dependencies instead of trying to impose its own
- easily allows to find dependencies on systems with no canonical path to look for them
Not sure people "like" it, but they claim it makes the job easier.
Sometimes cmake is optional. That is, one can still type "make" on Linux/BSD and just ignore the cmake files. Unfortunately, that seems to be the less common way to use cmake.
Using cmake on Linux/BSD does seem like overkill. It is not necessary. I share the aversion to learning cmake but always figured complaining about it would not be well-received.
Now what I don’t get is why Meson is so popular. I haven’t dived into it, but from the outside it doesn’t look like all that different from CMake. Seems to me like the vast majority of Meson projects would be better off with CMake just because it’s more mature and well known, but otherwise does the exact same thing.
One of the things I've never been a fan of is that for whatever reason, the build steps that you see in basically every project are: - mkdir ./build - cd ./build - cmake configure ../ - make build
Has no one thought of simplifying that??
1. It's widely available (even on Windows). 2. It's not as bad as autotools.