Libraries: A First Step Toward Standard C++ Dependency Management - Bret Brown & Bill Hoffman 2023

C++ developers struggle with dependency management. Learn how the C++ Projects file (CPS) and JSON files aim to standardize installation and management, making it easier to switch between build systems and package managers.

Key takeaways
  • C++ dependency management has been a long-standing issue with the need for a standard solution.
  • Currently, there are multiple approaches to solve the problem, but none have achieved wide adoption.
  • The C++ Projects file (CPS) is a promising new approach to standardize the installation and management of C++ projects.
  • CPS is designed to be machine-readable and can be used to describe binary, source, and package managers.
  • The goal is to make it easier to switch between different build systems, versions of libraries, and package managers.
  • It aims to provide a consistent naming scheme for packages and libraries, making it easier for maintainers to manage dependencies.
  • Another proposal is to use JSON files to provide explicit metadata for packages and libraries, which could be used by build systems, IDEs, and package managers.
  • Using explicit metadata could help to provide better diagnostic information for common errors, allowing for more efficient error tracking.
  • The authors propose a minimal viable product (MVP) approach to testing CPS, with a focus on resolving some of the most pressing pain points for C++ developers.
  • The goal is to iterate and refine the approach through open collaboration and feedback from the developer community.