CMake
FrBrGeorge нашёл пару статей по теме:
Авторский план лекции
- Что такое система сборки и для чего она нужна.
- IDE обычно — и система сборки тоже.
- Простейший пример на основе программы из двух файлов и команды make.
- Далее — сборка на компьютере друга — нам нужно разрешить зависимости (autotools: configure, make, make install).
- Конфигурирование опций (configure).
- Далее — кроссплатформенность.
- История того, почему я выбрал CMake: кроссплатформенность.
- Ключевые преимущества CMake:
- Сборка out-of-tree.
- Генерация файлов, нативных для платформы/IDE. Некоторые IDE сами поддерживают CMake нативно (KDevelop последних версий).
- Не только сборка, но и конфигурирование проекта (гораздо более быстрый, чем в autotools, поиск библиотек).
Удобные средства конфигурирования исходных кодов (команда CONFIGURE).
- Интеграция с системой пакетирования CPack и системой тестирования CTest, а также с Dart — системой автоматизированной сборки (nightly builds).
- Экспортирование установленного проекта в CMake-файлах с возможностью быстрого подключения к другим проектам.
- Сравнение с другими кроссплатформенными системами сборки (scons, bjam, ant, qmake):
SCons: плохо показал себя при попытке перемещения на него KDE, разработчиком приходилось самим патчить его, не было поддержки от разработчиков SCons.
Ant: зависима от Java.
Bjam: на работе лектора соседний отдел его использует, с другой стороны, раз boost постепенно переходит на CMake, то это неспроста Bjam, кроме того, не нативен вроде, т. е. не генерирует файлы для IDE.
- Для чего лектор использует CMake, помимо сборки
- Генерация документации по коду. Язык документации (русский/английский) выбирается автоматически в зависимости от языка системы. Версия библиотек автоматически включается в документацию.
- Генерация RPM-пакетов.
- Версия пакета задается в файле CMake и может быть использована при конфигурировании.
- Использование различных настроек оптимизации.
- Обзор синтаксиса CMake-файлов, простейшие проекты.