~/talk

Designing a modern build system and dependency manager, how hard can it be?

Talkat NDC TechTown 2021 · 2021-08-30..09-02· [c-and-cpp, software-architecture]
links:none on file
slides:none on file

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

  1. 0:00Intro
  2. 0:25First principles
  3. 1:41No dependencies
  4. 2:22Copypaste
  5. 3:10System dependencies
  6. 3:57Vendoring
  7. 4:34Third party package managers
  8. 5:03Language specific package managers
  9. 5:23Language specific source collators
  10. 7:12Design principle #1
  11. 9:23Design principle #2
  12. 10:35Design principle #3
  13. 13:10Corollary
  14. 14:16Design principle #4
  15. 14:39CMake + Conan dependency usage
  16. 15:45Design principle #5
  17. 16:25A typical CMake snippet
  18. 17:19Design principle #6
  19. 17:50Unfortunate fact of life
  20. 18:12Simple case, C++ headers only
  21. 19:54Design principle #7
  22. 21:26Design principle #8
  23. 22:20Cohesion
  24. 22:42Law of programmers
  25. 23:47Design principle #0
  26. 24:53Looking up dependencies
  27. 25:40Wrap file for a library
  28. 28:16How to install
  29. 28:26A practical example
  30. 29:10The full build definition
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.