Pārlūkot izejas kodu

Create extensions-details.md

Niko McLys 3 gadi atpakaļ
vecāks
revīzija
2191e1e334
1 mainītis faili ar 57 papildinājumiem un 0 dzēšanām
  1. 57 0
      docs/ru/manuals/extensions-details.md

+ 57 - 0
docs/ru/manuals/extensions-details.md

@@ -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++ уменьшает размер исполняемого файла и улучшает производительность во время выполнения.