05 марта 2026 № 1 (2026)

ROSARIUM

газета советского программиста

Модуль 4: Системы сборки

Как собирать проекты на разных языках и с разными инструментами сборки.

Разные проекты используют разные системы сборки: Autotools, CMake, Meson, setuptools, Cargo, Go modules. Каждая имеет свои особенности упаковки.

Цели модуля

После изучения этого модуля вы будете:

  • Определять систему сборки проекта
  • Использовать правильные макросы для каждой системы
  • Понимать особенности упаковки для разных языков
  • Решать типичные проблемы сборки

Как определить систему сборки

Файлы в исходникахСистема сборки
configure, configure.ac, Makefile.amAutotools
CMakeLists.txtCMake
meson.buildMeson
setup.py, setup.cfg, pyproject.tomlPython (setuptools/pip)
Cargo.tomlRust (Cargo)
go.modGo modules
Makefile (только)Make
build.gradle, pom.xmlJava (Gradle/Maven)

Содержание модуля

  1. Autotools (configure/make)
    Классическая система сборки: configure, make, make install.

  2. CMake
    Современная кроссплатформенная система сборки.

  3. Meson
    Быстрая и простая система сборки нового поколения.

  4. Python: setuptools и wheel
    Упаковка Python-приложений и библиотек.

  5. Rust и Cargo
    Упаковка Rust-программ, vendoring зависимостей.

  6. Go modules
    Упаковка Go-программ.

Общие принципы

Независимо от системы сборки, этапы одинаковы:

%prep     →  Распаковка, патчи
%build    →  Конфигурация и компиляция
%install  →  Установка в buildroot
%check    →  Тесты
%files    →  Список файлов

Макросы RPM абстрагируют детали:

СистемаКонфигурацияСборкаУстановка
Autotools%configure%make_build%make_install
CMake%cmake%cmake_build%cmake_install
Meson%meson%meson_build%meson_install
Python%py3_build%py3_install
Rust%cargo_build%cargo_install
Go%gobuildinstall

Следующий модуль

После освоения систем сборки переходите к Модулю 5: ABF и рабочий процесс — там мы научимся работать со сборочной фермой.