Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/cppcon/cppcon2016
It all started with a CppCon 2014 lightning talk where I tried to convince the audience we needed a C++ package manager. Turned out, no convincing was necessary. Fast forward two years and we have a new build system, a package manager, and cppget.org, a repository of open source C++ packages. In this talk I would like to give a practical overview of what it's all about.
We start with a brief discussion of what exactly are we trying to achieve, how it is "better" than other solutions, and why we need yet another build system.
Then, we put on the "consumer" hat and see how to find packages that we are interested in and use the package manager to build/upgrade/downgrade them and their dependencies using multiple build configurations.
In the second half we look into more interesting features of the build system: out-of-source, persistent build configurations (don't you wish you could just edit them with a text editor), high-fidelity builds (what happens if I upgrade my compiler or change compile options), command-line configuration overrides (what if I want to quickly rebuild my project with clang++ instead of g++), cross-compilation (something is wrong if it's harder to cross-compile than to build natively on Windows), subprojects and amalgamation (what if I really don't like external dependencies).
Build systems also rarely handle just building. There is testing, installation (do we really have to run the whole process as sudo), and preparation of distributions (no, shipping your .gitignore files is not cool).
We finish with a brief discussion of cppget.org: what's its future, who should control it, and what should its policies be (acceptable licenses, name disputes, etc)?
Chief Hacking Officer
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 languages (DSL), C++ parsing, source-to-source
translation, and code generation. His notable projects to date
include ODB (ORM for C++), XSD and XSD/e (XML Schema to C++ compilers), as well as libstudxml (XML parser/serializer library for C++).
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com