Вести с полей систем сборки и управления пакетами.



1. Наконец-то cmake 3.28 + clang 17 позволяют использовать модули.



https://www.kitware.com/import-cmake-the-experiment-is-over/



2. Выложили (пока что по ссылке) доклад на CppCon'23 где тот же Хоффман содокладчик по Common Package Specification.



https://www.youtube.com/watch?v=IwuBZpLUq8Q



Таймлайн. В скобках -- мои примечания.



00:00 Начало и цели доклада

05:16 Зачем вообще управлять зависимостями: результаты интересного опроса что самое болезненное в C++, обзор наиболее неприятных проблем.

13:50 План исправления ситуации: замена зоопарка пекеджей единым стандартом. Плавный переход с CMake. Модули добавляют срочности этому плану.

21:43 Локальный максимум управления зависимостями: в больших компаниях уже функционирует нечто самописное (и всё что я видел было невероятно уродливым), в маленьких компаниях люди джедайствуют как могут (обычно у каждого свой build shell script врапает частые строчки для вызова CMake). Проблемы монореп и сабмодулей.

30:30 Решение: международный стандарт для экосистемы C++.



Тут микрофон уходит к Хоффману.



32:20 Что такое вообще библиотека?

34:30 Взаимодействие системы сборки с менеджментом зависимостей (я бы тут усилил тезис: почему все ненавидят менеджмент зависимостей). Подход через autotools. Эволюция CMake. Уроки которые мы выучили из модулей CMake. Пример FindQT4 и почему в CMake нет FindQT6 как отдельной команды.

48:45 Спецификация Common Package Specification и простое демо CPS в CMake. Некоторые планы на будущее развитие CMake в этом направлении.

59:20 Более высокоуровневые цели для будущей экосистемы в целом и ответы на вопросы.



Собственно спецификацию можно посмотреть вот тут:



https://cps-org.github.io/cps/index.html



#talks