add_subdirectory vs include, function vs macro in CMake — Introduction As you may already know, CMake is a popular open source tool that manages the build process of software. With CMake, you can define variables along with a set of directives and instructions to describe your project processes (building, testing, packaging etc). You can consider the variables in CMake like…