Migrating large projects to CMake
Migrating large projects that contain a number of libraries and several executables can be quite a challenge. On a closer look, those projects might, in fact, be multiple hierarchically nested projects, with one or more root projects that pull together multiple subprojects, which, in turn, contain or require multiple subprojects themselves. Depending on the size and complexity of the software portfolio of an organization, many root projects that share common subprojects might exist side by side, which might complicate migration. Creating a dependency graph, such as the one in the following diagram, of projects and subprojects often helps us to figure out the migration order. Each project might, in itself, contain multiple projects or targets that have their own dependencies:
Figure 15.1 – An example project hierarchy showing the various dependencies
Before migrating, the first thing to do is a thorough analysis...