b2

Мощная кроссплатформенная система сборки, разработанная для управления сложными проектами на C++ и других языках. Она предоставляет гибкий язык описания сборки, автоматическое определение зависимостей и поддержку множества компиляторов и платформ. Система широко используется в проектах Boost и других крупных open-source проектах.

Особенности

  • поддержка множества компиляторов (GCC, Clang, MSVC, Intel и др.) и платформ;
  • автоматическое определение зависимостей между целевыми файлами;
  • параллельная сборка с использованием нескольких ядер процессора;
  • расширяемый язык описания сборки на основе Python-подобного синтаксиса;
  • поддержка вариантов сборки (debug, release, профилирование и др.);
  • интеграция с системами тестирования и установки пакетов.

Основные компоненты

b2 состоит из нескольких ключевых компонентов, которые обеспечивают гибкость и мощность системы сборки (подробнее с документацией можно ознакомиться здесь).

Ядро системы сборки

Основой b2 является интерпретатор языка описания сборки, который выполняет сценарии сборки, управляет зависимостями и запускает инструменты компиляции. Ядро обеспечивает кроссплатформенность и абстрагируется от особенностей конкретных компиляторов и ОС.

Основные функции ядра:

  • Парсинг и выполнение файлов Jamfile и Jamroot;
  • Управление графом зависимостей между целями сборки;
  • Автоматический запуск компиляторов, линкеров и других инструментов;
  • Кэширование результатов сборки для ускорения инкрементальных сборок;
  • Обработка ошибок и формирование понятных диагностических сообщений.

Язык описания сборки (Jam)

b2 использует собственный язык описания сборки, который сочетает простоту декларативного описания с мощью императивного программирования. Язык основан на синтаксисе, похожем на Python, и поддерживает переменные, функции, условия и циклы.

Основные конструкции языка:

  • Цели (targets): описание файлов, которые нужно построить;
  • Зависимости (dependencies): указание отношений между целями;
  • Свойства (properties): настройки компиляции (флаги, определения и т.д.);
  • Правила (rules): пользовательские команды для обработки файлов;
  • Модули (modules): организация кода в повторно используемые компоненты.

Управление вариантами сборки

Система предоставляет удобные механизмы для управления различными вариантами сборки проекта, позволяя легко переключаться между debug, release и другими конфигурациями.

Возможности управления вариантами:

  • Предопределенные варианты: debug, release, profile, coverage;
  • Пользовательские варианты сборки с настраиваемыми свойствами;
  • Одновременная сборка нескольких вариантов в разные каталоги;
  • Наследование и комбинирование свойств вариантов;
  • Условная компиляция в зависимости от выбранного варианта.

Расширяемость и пользовательские правила

b2 позволяет разработчикам создавать собственные правила и расширять функциональность системы. Это особенно полезно для проектов со специфичными требованиями к сборке.

Механизмы расширения:

  • Определение новых типов целей (например, для генерации кода);
  • Создание пользовательских инструментов и их интеграция в систему;
  • Написание модулей для повторного использования логики сборки;
  • Переопределение стандартных правил для адаптации под нужды проекта.

Инструменты командной строки

b2 предоставляет богатый интерфейс командной строки, который позволяет управлять сборкой, запускать тесты, устанавливать проект и выполнять другие задачи.

Основные команды:

  • b2 — запуск сборки с указанием целей и вариантов;
  • b2 clean — очистка результатов сборки;
  • b2 install — установка скомпилированных файлов;
  • b2 test — запуск тестов;
  • b2 --help — получение справки по использованию.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "b2/5.2.1@aurora",
    )    

Процесс локальной сборки описан в документации.

b2

B2 makes it easy to build C++ projects, everywhere.
Лицензия
BSL-1.0
Версия
Домашняя страница
Скачать
x86_64
681.49 Kb
MD5: d738e33b4f6b5f88ea9fa48b6f2b3858
Updated: 04.09.2025, 12:40:27
armv7
634.2 Kb
MD5: 4f29f4209040396f0c368cb0c8537046
Updated: 04.09.2025, 12:40:25
armv8
665.03 Kb
MD5: dcc611ee449427836fb9535bacac4c74
Updated: 04.09.2025, 12:40:18
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.