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