CMake is a cross-platform build system. A software project would be tied to a specific environment without a build system. CMake detects the local environment, such as compiler, libraries, and system commands. I believe automake/autoconf is a similar syst