Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

YouTube

Designing a Modern Build System and Dependency Manager - How Hard Can It Be?

NDC Conferences via YouTube

Overview

Explore the challenges and intricacies of designing a modern build system and dependency manager in this conference talk. Delve into the complexities of creating a package manager for C and C++ projects, focusing on the Meson build system. Discover the various reasons that make designing such systems difficult, including support for multiple compilers and seamless integration across diverse platforms. Learn about key design principles, dependency management techniques, and practical examples of build definitions. Gain insights into topics such as system dependencies, vendoring, third-party package managers, and language-specific source collators. Understand the importance of cohesion, simplicity, and adherence to the "law of programmers" in build system design. Witness live demos of building complex projects on multiple platforms while conforming to specific system requirements.

Syllabus

Intro
First principles
No dependencies
Copypaste
System dependencies
Vendoring
Third party package managers
Language specific package managers
Language specific source collators
Design principle #1
Design principle #2
Design principle #3
Corollary
Design principle #4
CMake + Conan dependency usage
Design principle #5
A typical CMake snippet
Design principle #6
Unfortunate fact of life
Simple case, C++ headers only
Design principle #7
Design principle #8
Cohesion
Law of programmers
Design principle #0
Looking up dependencies
Wrap file for a library
How to install
A practical example
The full build definition

Taught by

NDC Conferences

Reviews

Start your review of Designing a Modern Build System and Dependency Manager - How Hard Can It Be?

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.