CMake#
As if C and C++ weren’t complicated enough, building programs written in those languages is even more complicated.
(GNU-)Make, a low-level build tool to manage some of the intricacies of the build, has been invented rather early in history. Today it is considered the “assembly language of a build”.
A number of higher level tools have been designed, to manage most of
the rest of the build intricacies, together with some that make
has created on its own. One of these tools, CMake, is introduced in this course.
Target Audience#
Software developers, mostly. Every developer of a team is concerned about the structure of the project that is maintained by the team. The project’s modules and their interdependencies have to be understood. CMake, if used judiciously, can be used to clearly define project structure.
Recommended Prior Knowledge#
C or C++ is recommended, obviously. It is good to understand what C’s
#includedirective does (see Functions and Program Structure for#includeand more).A rudimentary understanding of the Unix shell is also helpful (see Linux Basics: A Gentle Introduction for Shell topics, and more)