Skip to content

Details

Description

Using dependencies in C and C++ has always been challenging, rooted in the fractured compiler and build systems ecosystem and the intrinsic complexity of building C and C++. With the maturity of C, C++ dependency and package managers, now there is a demand for better interoperability among the different tools.

This talk will present an overview of existing mechanisms for specifying dependencies in different build systems, like environment variables, pkg-config .pc files and CMake “config” files, diving a bit deeper into the latter, including the “find_package()” functionality. Also, the disadvantages of tools such as “FetchContent()” from the dependency management perspective will be discussed.

In this quest for interoperability, Conan package manager introduced the “package_info” concept, which will be reviewed as the mechanism that has allowed the different build systems to communicate at scale.

Now, a group of people from different organizations such as Kitware (CMake), Bloomberg, JFrog (Conan), Microsoft, etc, are collaborating together in the Common Package Specification (CPS) as a standardized representation of a package that can be used across the different tools in the ecosystem. This CPS is not just a spec, it already has some implementations,for example it could be highlighted that CMake 4 recently removed the “experimental” gates, and Conan also supports it. The talk will introduce CPS, how it works, and the current support by existing tools, with full demos including a full round trip of package creation and consumption with CPS with CMake and Conan.

Finally, a discussion of what “comes next” in C, C++ dependency management will be done: SBOMs, compliance, reproducibility, traceability, security, and many more.

About the Presenter

Diego Rodriguez-Losada‘s passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup.. Since then he mostly develops in Python. Diego is a conan.io C/C++ package manager co-creator and maintainer, now working at JFrog as Conan Lead Architect and C/C++ Advocate.

Related topics

C & C++
Computer Programming
Software Development
Software Engineering

Sponsors

Here

Here

Many thanks to Here for sponsoring our event of September 21, 2017

EZE Software Group

EZE Software Group

Many thanks to EZE Software Group for providing us with a place to meet.

Spot Trading, LLC

Spot Trading, LLC

Many thanks to Spot Trading, LLC, for providing us with a place to meet.

JetBrains

JetBrains

Many thanks for giving us free coupons for their software products

You may also like