CMake, CPS и Conan: путь к стандартизированному управлению зависимостями в C и C++
GlobalCpp и Chicago C++ User Group
0:00 / 0:00
CMake, CPS и Conan: путь к стандартизированному управлению зависимостями в C и C++
230 просмотров · 3 месяца назад
GlobalCpp и Chicago C++ User Group
230 просмотров · 3 месяца назад
Общая информация
Мы также хотим встречаться в реальной жизни! Посетите веб-сайт, чтобы узнать о социальных мероприятиях на этой неделе. Заходите еженедельно, чтобы узнать о новых событиях. Хотите помочь в организации таких мероприятий? Найдите нас в Discord (информация на целевой странице) и помогите нам улучшить взаимодействие и общение.
Пожалуйста, посетите целевую страницу группы: https://globalcpp.github.io для получения всей информации.
На этой неделе
Использование зависимостей в C и C++ всегда было сложной задачей, обусловленной раздробленной экосистемой компиляторов и систем сборки, а также внутренней сложностью сборки C и C++. С развитием менеджеров зависимостей и пакетов C и C++ возникла потребность в лучшей совместимости между различными инструментами.
В этом докладе будет представлен обзор существующих механизмов для указания зависимостей в различных системах сборки, таких как переменные среды, файлы pkg-config .pc и файлы конфигурации CMake, с более подробным рассмотрением последних, включая функциональность «find_package()». Также будут рассмотрены недостатки таких инструментов, как «FetchContent()», с точки зрения управления зависимостями.
В стремлении к совместимости менеджер пакетов Conan представил концепцию «package_info», которая будет рассмотрена как механизм, позволивший различным системам сборки взаимодействовать в масштабе.
Сейчас группа людей из разных организаций, таких как Kitware (CMake), Bloomberg, JFrog (Conan), Microsoft и др., сотрудничает над общей спецификацией пакетов (Common Package Specification, CPS) как стандартизированным представлением пакета, который может использоваться различными инструментами в экосистеме. Эта CPS — не просто спецификация, она уже имеет некоторые реализации, например, можно отметить, что CMake 4 недавно удалил «экспериментальные» шлюзы, и Conan также поддерживает их. В докладе будет представлена CPS, принцип её работы и текущая поддержка существующими инструментами, с полными демонстрациями, включая полный цикл создания и использования пакетов с помощью CPS в CMake и Conan.
В заключение будет проведено обсуждение того, что «будет дальше» в управлении зависимостями в C и C++: SBOM, соответствие стандартам, воспроизводимость, отслеживаемость, безопасность и многое другое.
Об докладчике
Диего Родригес-Лосада увлечен робототехникой и разработкой программного обеспечения. Он много лет работал с C и C++ в промышленной сфере, робототехнике и искусственном интеллекте. Диего также был профессором университета (с возможностью получения постоянной должности) и исследователем в области робототехники в течение 8 лет, до 2012 года, когда он покинул академическую среду, чтобы попытаться создать менеджер зависимостей для C/C++ и стал соучредителем стартапа. С тех пор он в основном разрабатывает на Python. Диего является соавтором и сопровождающим менеджера пакетов conan.io для C/C++, в настоящее время работает в JFrog в качестве ведущего архитектора Conan и представителя C/C++.