Build Status | |
---|---|
master | |
latest |
Поддержка и обновление 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.
Для окончательной сборки проекта используется утилита 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
Хоть утилита 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