Build Systems: a Simple Solution to a Complicated Problem
summary
Claims a simpler C++ build flow by reading all source with cpp-dependencies to derive file- and component-level includes and then running a single tool called Evoke that auto-generates CMake and drives Ninja. Tested on ~7 million lines, ~500 components, it answers dependency cycles, generates ~60% of CMake targets, and returns interactive queries in ~2 seconds with a hot cache. Demo builds a hello.exe, a reusable library, unit tests and examples; limitations: macros, ambiguous includes, toolchain switching and some platforms unimplemented.
AI-written summary · about
chapters (10)
- 0:00The case for simplicity
- 3:02Evolution of build systems
- 7:03Why builds become complex
- 10:55Categorizing build systems
- 15:16Overcoming build complexity
- 21:37Standardization and conventions
- 25:08Managing project dependencies
- 30:08Automating dependency discovery
- 33:48Introducing Evoke
- 41:29Live demonstration
related talks
55mCMake for the impatient
58mThere Will Be Build Systems: I Configure Your Milkshake
01h 34mThings I Learnt While Trying to Avoid Becoming a CMake Expert
01h 01mLessons Learned from Packaging 10,000+ C++ Projects
55mOvercoming C++ Embedded Development Tooling Challenges
41mDesigning a modern build system and dependency manager, how hard can it be?
01h 01mWhy managing C++ dependencies is hard
45mLess is More - a Build Pipeline for the Modern Age
