Skip to content

diadoc/diadocsdk-cpp

Repository files navigation

Build Status
master Build status (master)
latest Build status (latest)

diadocsdk-cpp

Поддержка и обновление C++ SDK прекращены с 01.01.2024.

diadocsdk-cpp является официальной C++-реализацией клиента, использующего публичный API Диадока. На данный момент поддерживается только ОС семейства Windows, компиляция с помощью компиляторов Visual Studio С++.

Сборка проектов

Для сборки проекта используется утилита cmake. Инсталлятор можно скачать на официальном сайте. В качестве альтернативы, можно установить утилиту cmake с помощью Chocolatey. В итоге утилита cmake должна находиться в переменной среды PATH, чтобы ее можно было вызвать из командной строки.

Стандартный способ сборки проекта утилитой cmake (старт из корня репозитория):

mkdir tmp
cd tmp
cmake ..
cmake --build .

Видно, что утилита cmake работает в две фазы:

  • cmake .. генерирует файлы solution и проектов для Visual Studio.
  • cmake --build . - запуск сборки проекта из командной строки. Технически, для сборки проекта cmake вызывает msbuild для сгенерированных проектов. Также возможно открыть сгененрированные проекты непосредственно в Visual Studio и компилировать проект из IDE.

Окончательная сборка проекта (CI)

Для окончательной сборки проекта используется утилита Cake.

Запуск powershell-скрипта build.ps1 скачает утилиту Cake, если ее у вас нет, и запустит сборку проекта. Из командной строки этот скрипт можно запустить с помощью generate.bat.

Выполняется:

  • генерация проектов Visual Studio с помощью утилиты cmake
  • сборка компилятора protoc
  • компиляция proto-файлов
  • компиляция DiadocApi

Сборка для различных платформ

cmake умеет генерировать solution и проекты для разных версий Visual Studio, для разных архитектур (x86, x64, ARM). Генератор и тулсет можно регулировать с помощью параметров командной строки build.ps1.

Пример генерации проектов Diadoc C++ SDK для Visual Studio 2013, для 64-битной платформы, с использованием компилятора, генерирующего исполняемые файлы с возможностью запуска в Windows XP:

PS> .\build.ps1 -Generator "Visual Studio 12 2013" -Toolset v120_xp

64-битные сборки официально не поддерживаются

Хоть утилита cmake и позволяет сгенерировать solution и проекты для 64-битных платформ (Н: с помощью генератора Visual Studio 12 2013 Win64), DiadocSDK C++ официально не поддерживает сборку под 64 бита!

Вы можете скомпилировать DiadocSDK C++ под 64 бита на свой страх и риск! Код компилируется, но выдает много предупреждений про конвертацию типов size_t в int, т.е. он не является корректным. Это ограничение связано с тем, что используемая библиотека Google Protobuf v2 не поддерживает сборку под 64 бита. Также компилятор protoc генерирует код, некорректный для использования в 64-битных системах.

Добавление функциональности

  • Сделайте Fork
  • Создайте ветку для новой фичи (git checkout -b my-new-feature)
  • Сделайте Commit изменений (git commit -am 'Add some feature')
  • Сделайте Push новой ветки (git push origin my-new-feature)
  • Создайте новый Pull Request