My talk at ConanDays 2020 in Madrid

Kai Wolf

Kai Wolf 12 February 2020

My talk at ConanDays 2020 in Madrid

I’m happy to announce that I’ll be giving a talk in March at the ConanDays conference in Madrid, Spain. I think this is also the first time that JFrog is holding this conference. Thus, I’m curious and excited that I get a change being there. The title of my talk will be Dependency Management with CMake and Conan. Following is my submitted proposal for this talk:

The story of (thirdparty) package dependency management for C and C++ based projects is a story full of misunderstandings, shortcomings and dead-ends. This becomes most noticeable in the fact that many software projects explicitly advertise that they do not depend on any other thirdparty software packages. This is particularly interesting as this doesn’t seem to be an issue in many other programming languages.

On the other hand, maintaining a large chain of dependencies in a C or C++ based project is typically quite cumbersome and has always been this way due to ABI compatibility reasons and the large number of different factors that influence the binary outcome of a compilation process.

Historically, CMake’s answer to this is to either use ExternalProject (or more recently FetchContent) and gather all dependencies in what is called a superbuild strategy. However, ultimatively this approach is brittle and hard to maintain for unexperienced CMake users.

Conan has made a tremendous progress in the last months and years and is finally usable in CMake based projects in what is typically called a modern CMake-y way as packages distributed with Conan can now be consumed cleanly without the need to adjust the build configuration of a project.

This talk will give a short historic overview of former dependency management strategies, explain best practices for integrating Conan in CMake-based projects and outline what is technically now feasible once a project has been adapted to this new standard.

I’m also available for software consultancy, training and mentoring. Please contact me, if you are interested in my services.