Перейти к содержанию

Система сборки

Система сборки NIKA основана на принципах системы сборки sc-machine. Чтобы узнать больше о них, прочитайте документацию по системе сборки sc-machine.

Этапы компиляции

Этот проект использует пресеты CMake. Эти пресеты помогают управлять различными конфигурациями сборки, упрощая работу с зависимостями и оптимизируя процесс сборки.

Если вы хотите использовать CLI, вы можете перечислить все доступные конфигурации в файле CMakePresets.json и выбрать один из пресетов:

conan install . -s build_type=<Debug|Release> --build=missing
cmake --list-presets

Конфигурационные пресеты

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

Имя Отображаемое имя Описание Расположение сборки
debug-conan Конфигурация Debug (Conan) Конфигурация Debug с тестами (используются зависимости Conan) build/Debug
release-conan Конфигурация Release (Conan) Конфигурация Release (используются зависимости Conan) build/Release
release-with-tests-conan Конфигурация Release с тестами (Conan) Конфигурация Release с тестами (используются зависимости Conan) build/Release

Пресеты сборки

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

Имя Конфигурационный пресет Расположение сборки
debug debug-conan build/Debug
release release-conan, release-with-tests-conan build/Release

Рекомендации

  • Для разработки и отладки используйте пресет Конфигурация Debug (Conan) (debug-conan). Эта конфигурация включает опции для тестирования и бенчмаркинга.
  • Для сборки в production используйте пресет Конфигурация Release (Conan) (release-conan), чтобы создать оптимизированные сборки без отладочной информации.
  • Если вам нужно запустить тесты в production сборке, выберите пресет Конфигурация Release с тестами (Conan) (release-with-tests-conan).

Пример использования

Чтобы собрать ваш проект с использованием этих пресетов, вы можете использовать следующие команды:

# Используйте pipx для установки Conan, если он еще не установлен
pipx install conan
# Установите зависимости с использованием Conan с типом сборки Debug
conan install . -s build_type=Debug --build=missing
# Настройте с использованием пересета debug-conan
cmake --preset debug-conan
# Соберите с использованием пересета debug
cmake --build --preset debug

Чтобы собрать проект для release, вы можете собрать с тестами, чтобы убедиться, что все работает как ожидается:

# Установите зависимости с использованием Conan с типом сборки Release
conan install . -s build_type=Release --build=missing
# Настройте с использованием пресета release-with-tests
cmake --preset release-with-tests-conan
# Соберите с использованием пресета release
cmake --build --preset release

Мы также определяем инструкции INSTALL в нашем CMake. Эта процедура может быть запущена путем добавления --target install к команде cmake --build --preset <preset>. Результат этой команды будет находиться в build/<Release|Debug>/install (наша папка установки по умолчанию). Папка установки представляет собой набор переносимых исполняемых файлов и общих библиотек, необходимых для запуска NIKA. Эта команда предназначена для создания архивов/папок с нашим кодом, которые вы можете использовать в своих проектах.