“Using Modern CMake Patterns to Enforce a Good Modular Design”
summary
Argues that using modern CMake target APIs enforces modular design by making dependencies explicit, avoiding flag leaks, and catching circular or hidden links; demonstrates using target_link_libraries, target_include_directories with public/private/interface visibility, header‑only interface targets, and imported targets for third‑party libs; notes CMake feature milestones (modern features since 2.8.12, helpful find_package targets in CMake 3.5), and recommends pkg‑config or Conan when no native finder exists — the patterns work to simplify builds and preserve clean dependency graphs.
AI-written summary · about
chapters (3)
related talks
01h 34mThings I Learnt While Trying to Avoid Becoming a CMake Expert
58mDependency Management at the End of the Rainbow
59mC++ Modules and Large-Scale Development
01h 30mC++ Modules and Large-Scale Development
01h 30mC++ Modules and Large-Scale Development
01h 28mModern C++ Design reloaded
01h 07mDesign Patterns in Modern C++
01h 01mC++20 Modules - Review of the Current State of C++ Modules 2024
