The CMake Language
Writing in the CMake language is trickier than one might expect. When you read a CMake listfile for the first time, you may be under the impression that the language in it is so simple that it can be just practiced without any theory. You may then attempt to introduce changes and experiment with the code without a thorough understanding of how it actually works. I wouldn’t blame you. We programmers are usually very busy, and build-related issues aren’t usually something that sounds exciting to invest lots of time in. In an effort to go fast, we tend to make gut-based changes hoping they just might do the trick. This approach to solving technical problems is called voodoo programming.
The CMake language appears trivial: after introducing our small extension, fix, hack, or one-liner, we suddenly realize that something isn’t working. Usually, the duration spent on debugging exceeds the time required for comprehending the topic itself. Luckily...