From all the unknowns you mentioned, the cores can also be identified easily. From them, I would like to use only a part of it (although even if fully parallel, the OS scheduler should do its jobs well done as well).
Why it is useful?
- for people who want to compile foreign projects, and don’t have time or don’t want to configure and type manually
- for pushing to a build server, without command arguments for the build
- for convenience
- because it is easily possible to be realized (
cmake
offers anyhow a whole universe of functionality already)