Настройка окружения
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
(Устарело) Категории пресетов
Информация из этой секции не является актуальной для новых репозиториев.
Предлагаемые пресеты делятся на:
- Непосредственно использующиеся для сборки в рамках CI — такие обычно обозначены префиксом
CI-
. С их помощью можно максимально приблизиться к сборке в GitHub, но такие пресеты ожидают конкретную версию конкретного компилятора. Лучше всего их использовать в сочетании с нашими Docker-контейнерами. - Упрощённые и оптимизированные под запуск на широком спектре систем — такие обычно обозначены префиксом
Default-
. Они подойдут, чтобы без дополнительных сложностей собрать и запустить тесты, но в них используется урезанное множество опций компиляции/линковки по сравнению с первыми.