CppCon 2018 has ended
Back To Schedule
Monday, September 24 • 11:00 - 12:00
C++ Dependency Management: from Package Consumption to Project Development

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

TL;DR: Want to see what Cargo for C++ looks like? Then this talk is for you.

Existing C++ package managers focus primarily on consumption: there is a repository of released packages that we can download, build, and install. But what happens between releases of these packages? In other words, how are they developed, tested, and delivered? Currently, the answer is "painfully" (and rarely by mere mortals).

Meantime, as languages competing with C++ have shown (see Rust's Cargo, Go's dep/vgo), the state of the art has moved on and a "consumption manager" alone is no longer sufficient: we need support for managing dependencies of a project over its entire development lifecycle -- a tool commonly referred to as a project dependency manager.

In this talk I would like to show the C++ dependency management workflow focused on development as supported by the build2 toolchain. Specifically, we will create from scratch a cross-platform C++ project, add/manage a few dependencies (that can come both from a central package repository as well as individual git repositories), setup CI for all the major platform/compiler combinations, go through a couple of releases, and, finally, publish our package to a central repository and see how our users can reproduce the exact set of dependencies we used in our builds (the lockfile functionality).

And this won't be an entirely toy example either: in the process we will touch on quite a few real-world challenges, including continuous versioning between releases, how to depend on unreleased revisions in version control repositories, dependency auto-synchronization through build system integration, as well as how the upcoming C++ Modules will likely affect packaging.

avatar for Boris Kolpackov

Boris Kolpackov

Chief Hacking Officer, Code Synthesis
Boris Kolpackov is a founder and CHO (Chief Hacking Officer) at Code Synthesis, a company focusing on the development of open-source tools and libraries for C++. For the past 10 years Boris has been working on solving interesting problems in the context of C++ using domain-specific... Read More →

Monday September 24, 2018 11:00 - 12:00 PDT
Copper Mountain Theater (2nd Floor)
  • Build and Package Systems