|
@@ -0,0 +1,57 @@
|
|
|
|
+---
|
|
|
|
+title: Нативные расширения - Подробнее
|
|
|
|
+brief: В этом руководстве описаны некоторые подробности о системе сборки, используемой для нативных расширений.
|
|
|
|
+---
|
|
|
|
+
|
|
|
|
+# Настройка сборки для Defold
|
|
|
|
+
|
|
|
|
+Здесь мы приводим некоторые важные сведения о сборке, чтобы максимально упростить интеграцию с вашими расширениями.
|
|
|
|
+
|
|
|
|
+Вот некоторые моменты, которые следует учитывать при создании расширения для движка Defold. Для получения более общих рекомендаций по разработке кроссплатформенного нативного кода, а также расширений/Lua APIs, пожалуйста, обратитесь к [Нативные Расширения - Лучшие Практики](/manuals/extensions-best-practices).
|
|
|
|
+
|
|
|
|
+## C++ версия
|
|
|
|
+
|
|
|
|
+В самом движке мы не используем C++ версии выше C++98. Хотя вы можете использовать более высокую версию для создания своего расширения, имейте в виду, что более высокая версия может содержать изменения ABI. Это может сделать невозможным использование вашего расширения в сочетании с другими расширениями в движке или в хранилище ассетов.
|
|
|
|
+
|
|
|
|
+При создании библиотек (например, расширений) полезно придерживаться наименьшего целевого знаменателя.
|
|
|
|
+
|
|
|
|
+## Toolchain
|
|
|
|
+
|
|
|
|
+### Версии SDK
|
|
|
|
+
|
|
|
|
+Для получения наиболее точного списка версий проверьте с помощью [build.py](./scripts/build.py).
|
|
|
|
+
|
|
|
|
+* Android: NDK 20r, Build Tools 23.0.2, Api Level 16 for armv7 and Api level 21 for arm64
|
|
|
|
+* iOS: iPhoneOS13.5.sdk
|
|
|
|
+* macOS: MacOSX10.15.sdk
|
|
|
|
+* Windows: WindowsKits 10.0, Microsoft Visual Studio 2019
|
|
|
|
+* Linux: Ubuntu 16.04, clang 9, libssl-dev, uuid-dev, libxi-dev, libopenal-dev, libgl1-mesa-dev, libglw1-mesa-dev, freeglut3-dev
|
|
|
|
+* Html5: Emscripten 1.39.16
|
|
|
|
+
|
|
|
|
+### C++ версия + ABI совместимость
|
|
|
|
+
|
|
|
|
+* Linux: `clang 9`
|
|
|
|
+* Android:`clang` using `NDK r20`
|
|
|
|
+* Html5: `Emscripten 1.39.16`
|
|
|
|
+* Win32: `Microsoft Visual Studio 2019` (`clang 9` on build server)
|
|
|
|
+* iOS/macOS: `apple-clang` (`clang 9` on build server)
|
|
|
|
+
|
|
|
|
+Для iOS/macOS мы используем `-miphoneos-version-min=9.0` и `-mmacosx-version-min=10.7` соответственно.
|
|
|
|
+
|
|
|
|
+Мы не указываем конкретную версию C++, поэтому используем версию по умолчанию каждого компилятора.
|
|
|
|
+
|
|
|
|
+## Win32 + Clang
|
|
|
|
+
|
|
|
|
+Недавнее дополнение - возможность собирать сборки для Windows с помощью clang.
|
|
|
|
+Это позволяет ускорить сборку на наших серверах, а также оптимизировать наши сборки.
|
|
|
|
+
|
|
|
|
+## Статическая связка
|
|
|
|
+
|
|
|
|
+Пользовательский движок построен с использованием статической связки.
|
|
|
|
+Основная причина заключается в том, что на iOS версии < 8 несколько исполняемых двоичных файлов в .ipa не допускаются в App Store.
|
|
|
|
+
|
|
|
|
+## Никаких исключений из C++
|
|
|
|
+
|
|
|
|
+Мы не используем никаких исключений в движке.
|
|
|
|
+Они обычно не используются в игровых движках, поскольку данные (в основном) известны заранее, во время разработки.
|
|
|
|
+Удаление поддержки исключений C++ уменьшает размер исполняемого файла и улучшает производительность во время выполнения.
|