Back To Schedule

Link What You Include

How You Can Prevent Architectural Erosion by Maintaining a Coherent CMake Target Model

16:30 - 18:00 Tuesday 5th May 2026 MT Booz Allen Seminar Room
Beginner
Intermediate
Tooling/Utilities

The target model of modern CMake is a concise and powerful way to organize a projects build system through the explicit declaration of the dependencies between physical modules. However, due to their transitive nature, it's far too easy to add or remove a dependency without making the corresponding update to the build system. This is symptomatic of a general lack of visibility of module coupling, which is an important factor in overall code quality.

This talk will introduce link-what-you-include, a new open source tool that can compute a projects dependency tree and give you more control over its evolution. It is analogous to include-what-you-use, but targeting inter-library dependencies rather than inter-file dependencies. By keeping your project "link-what-you-include clean", you can not only maintain an accurate target model, but also prevent the degradation of a modular architecture into a ball of mud.

View Slides

Frank Miller

Principal Software Development EngineerEsri

Frank is a self taught programmer that learned the craft supporting bioengineering, cardiology, and GIS. He has been programming in C++ for a living since 2003 and has the major character flaw of starting a new job and rewriting the buildsystem in CMake. Frank is currently a software engineer at Esri.