Система сборки
Основная система сборки: CMake. Библиотеки и приложения, разрабатываемые в рамках проекта могут и должны переиспользоватья с целью минимизации дублирующегося функционала.
Для получения и управления внешними зависимостями в проекте используется vcpkg, который находится в репозитории в виде Git подмодуля по пути native/extern/vcpkg. Инструмент автоматически устанавливается при сборки контейнера разработки и доступен во всех проектах. Далее описан стандартный процесс работы.
-
Инициализация сервиса
- Создание директории с соответствующим названием (см. соглашения)
mkdir native/em-es.cpp && cd native/em-es.cpp- Инициализация
vcpkg:
vcpkg new --application -
Объявление внешних зависимостей
Нужные зависимости можно найти в регистре.
vcpkg add port protobuf -
Инициализация CMake
cmake_minimum_required(VERSION 3.11)set(CMAKE_TOOLCHAIN_FILE $ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmakeCACHE STRING "Vcpkg toolchain file")project(em-es.cpp CXX)set(CMAKE_CXX_STANDARD 20)set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_EXPORT_COMPILE_COMMANDS true)set(CMAKE_BUILD_TYPE Debug)find_package(protobuf CONFIG REQUIRED)... -
Использование внутренних зависимостей
Внутренние зависимости подключаются в виде CMake модулей:
add_subdirectory(../other) -
Сборка
mkdir build && cd buildcmake .. && make