One limitation of building a project using a tree of add_subdirectory calls is that CMake does not allow us to use target_link_libraries with targets that are defined outside of the current directory scope. This was not a problem for the example shown in this recipe. In the next recipe, we will demonstrate an alternative approach where we assemble the different CMakeLists.txt files not using add_subdirectory, but using module includes, which allows us to link to targets defined outside the current directory.
CMake can use the Graphviz graph visualization software (http://www.graphviz.org) to generate the dependency graph of a project:
$ cd build$ cmake --graphviz=example.dot ..$ dot -T png example.dot -o example.png
The generated ...