Разработчик языка XL опубликовал новую сборочную систему build
27 июня 2017 года
Christophe de Dinechin, автор языка программирования XL, участник разработки спецификаций C++, создатель системы виртуализации для HP-UX и разработчик ряда известных компьютерных игр, в настоящее время работающий в компании Red Hat над технологией удалённого рабочего стола SPICE, опубликовал новую сборочную систему "build". Сборочная система ранее была задействована для сборки кодовой базы проектов ELFE и XL, а теперь может применяться в качестве универсального продукта, не привязанного к конкретным системам. Код открыт под лицензией GPLv3.
Build представляет собой серию надстроек над утилитой make для упрощения сборки проектов на С/С++, которая оформлена в виде набора make-сценариев. Ключевой особенностью Build является предоставление встроенных средств для автоматической настройки сборочного окружения, которые в отличие от Automake не требуют запуска отдельной фазы генерации сборочных файлов. Build также поддерживает ведение сборочного лога, подсветку вывода, обработку стадий тестирования и установки приложения. Отмечается, что Build не так богат возможностями как Autoconf, но вполне подходит для несложных проектов. При этом Build очень прост в использовании и не требует написания длинных make-файлов или определения правил для automake и cmake.
Особенности Build:
- Очень короткие и хорошо читаемые сборочные сценарии, предоставляющие все наиболее полезные возможности сборочной системы;
- Компактный размер: для типовой сборки достаточно поставки кода makefile, размером около 500 строк;
- Высокая скорость работы, так как короткие makefile с небольшим числом правил разбираются очень быстро;
- Автоматическая инкрементальная конфигурация проекта, генерация файла config.h;
- Автоматическое ведение лога с деталями процесса сборки;
- Автоматическая однопроходная генерация зависимостей для заголовочных файлов;
- Поддержка команд "make test" и "make install";
- Компактный отчёт о ходе сборки с подсветкой важных элементов;
- Вывод после завершения сборки сводного отчёта об ошибках и предупреждениях;
- Подсветка ошибок и предупреждений в выводе;
- Правила для сборки в различных режимах (оптимизация, отладка, формирование релиза, профилирование);
- Наличие правил-модификаторов для типовых сборочных опций, таких как v-debug для подробной отладки;
- Возможность определения персональных настроек через переменные окружения;
- Встроенная система подсказки ("make help");
- Полная поддержка стандартного синтаксиса Makefile и всех возможностей утилиты make;
- Поддержка распараллеливания процесса сборки на несколько потоков;
- Возможность разделения библиотек для ускорения сборки (библиотеки собираются только при первой сборке или при инициировании глубокой сборки);
- Хорошая переносимость. Система протестирована в Linux, macOS и Windows.
Пример сборочного сценария:
BUILD=./ SOURCES=hello.cpp PRODUCTS=hello.exe CONFIG= <stdio.h> <iostream> clearenv libm TESTS=product include $(BUILD)rules.mk
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.