Designing a modern build system and dependency manager, how hard can it be?
summary
Describes a concrete Meson-based stack: Meson build system plus its package layer and wrapdb registry, used to build a cross-platform example (SFML + Dear ImGui) by fetching and patching sources (FLAC, FreeType, OpenAL) and compiling them as subprojects. Argues for automatic single-version resolution, sandboxed subproject builds, and separating “what” a dependency is from “where” it comes from. Claims ~650 contributors and shows a working Windows build.
AI-written summary · about
chapters (30)
- 0:00Intro
- 0:25First principles
- 1:41No dependencies
- 2:22Copypaste
- 3:10System dependencies
- 3:57Vendoring
- 4:34Third party package managers
- 5:03Language specific package managers
- 5:23Language specific source collators
- 7:12Design principle #1
- 9:23Design principle #2
- 10:35Design principle #3
- 13:10Corollary
- 14:16Design principle #4
- 14:39CMake + Conan dependency usage
- 15:45Design principle #5
- 16:25A typical CMake snippet
- 17:19Design principle #6
- 17:50Unfortunate fact of life
- 18:12Simple case, C++ headers only
- 19:54Design principle #7
- 21:26Design principle #8
- 22:20Cohesion
- 22:42Law of programmers
- 23:47Design principle #0
- 24:53Looking up dependencies
- 25:40Wrap file for a library
- 28:16How to install
- 28:26A practical example
- 29:10The full build definition
related talks
33mBehind the Scenes of a C++ Build System
34m"Compiling Multi-Million Line C++ Code Bases Effortlessly with the Meson Build System"
49mBuild Systems: a Simple Solution to a Complicated Problem
01h 03m“C++ Dependency Management: from Package Consumption to Project Development”
01h 14mBuilding and Organising a Multi-Platform Development Code Base
47mLessons Learned From Porting LibreOffice's Build System To Meson
49mFast and Furious
01h 02m“What to Expect from a Next-Generation C++ Build System”
