Настройка окружения

IDE

Вы можете использовать IDE по вкусу для выполнения практик/домашних заданий.

Но чтобы ваш код был в определенном стиле и при написании кода вы быстро увидели опечатки/минорные баги — вам предоставлены .clang-tidy и .clang-format файлы в репозиториях.

В подразделах описаны этапы конфигурации некоторых IDE (рекомендуется CLion).

Также рекомендуем присмотреться к запуску тестов в Docker-контейнерах, использующихся в CI, и уже содержащих все нужные части тулчейна нужных версий. Найти их и информацию о том, как ими воспользоваться, можно тут.

Vcpkg

В некоторых заданиях для управления зависимостями (например, фреймворки для юнит-тестирования) мы используем пакетный менеджер vcpkg.

Вам не требуется его устанавливать самостоятельно, это происходит в рамках конфигурации CMake-проекта. Однако у него есть некоторые зависимости, которые должны быть установлены в вашей системе.

Например, на Ubuntu их можно установить следующей командой:

apt install git curl zip unzip tar pkg-config

CMake Presets

В большинстве репозиториев этого курса для организации проекта используется CMake и пресеты сборки для него (указаны в CMakePresets.json в корне репозитория).

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

При ручном использовании CMake, пресет нужно задать флагом --preset на этапе конфигурации, например:

# Configure CMake
cmake -S . --preset Default-Debug

# Build
cmake --build build/Default-Debug -j

# Run tests
build/Default-Debug/tests

(Устарело) Категории пресетов

Информация из этой секции не является актуальной для новых репозиториев.

Предлагаемые пресеты делятся на:

  1. Непосредственно использующиеся для сборки в рамках CI — такие обычно обозначены префиксом CI-. С их помощью можно максимально приблизиться к сборке в GitHub, но такие пресеты ожидают конкретную версию конкретного компилятора. Лучше всего их использовать в сочетании с нашими Docker-контейнерами.
  2. Упрощённые и оптимизированные под запуск на широком спектре систем — такие обычно обозначены префиксом Default-. Они подойдут, чтобы без дополнительных сложностей собрать и запустить тесты, но в них используется урезанное множество опций компиляции/линковки по сравнению с первыми.