Разработчик языка XL опубликовал новую сборочную систему build
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
Источник: http://www.opennet.ru/opennews/art.shtml?num=46767
|
0 | Tweet | Нравится |
|