4 ms·
One of my main use cases for CMake is that it works very well as a Windows, Mac, Linux cross-platform busybox. It allows to download files from the internet, un
by jcelerier 5y ago
One of my main use cases for CMake is that it works very well as a Windows, Mac, Linux cross-platform busybox. It allows to download files from the internet, unzip / untar, compute SHA hashes, do file system operations, ... in a very shell-like way (https://cmake.org/cmake/help/v3.21/manual/cmake.1.html#run-a-command-line-tool https://cmake.org/cmake/help/v3.21/manual/cmake.1.html#run-a...).
It's also been very useful in allowing to implement simple code parsing and generation thanks to its regex support, without having to install Perl (a pain on Win32), Bash (a pain on Win32), Python (same) and without requiring to build another binary doing the code parsing / code generation step (which generally causes a ton of problems as soon as you want to cross-compile since the code generation binary should be built with the host toolset - e.g. what if I want to run a code generator for a WASM target or some kind of VM as part of my build and don't want to have to run multiple build passes ?).
Finally I like that I don't have to put all my strings in "" unlike other build systems, I find it much more readable.
The Qt GUI has also been a very appreciated features of some of my users who:
- want to build of my software on their machine
- are technical enough to follow instructions on a GUI
- are not technical enough to use a terminal
which, from my experience, is a surprisingly large amount of people.