Преглед изворни кода

Create extensions-build-variants.md

Niko McLys пре 3 година
родитељ
комит
530aad2058
1 измењених фајлова са 155 додато и 0 уклоњено
  1. 155 0
      docs/ru/manuals/extensions-build-variants.md

+ 155 - 0
docs/ru/manuals/extensions-build-variants.md

@@ -0,0 +1,155 @@
+---
+title: Нативные расширения - Варианты сборки
+brief: Это руководство описывает различные варианты сборок, которые может создавать Defold, и то, как они взаимодействуют с нативными расширениями и движком.
+---
+
+# Нативные расширения - Варианты сборки
+
+## Варианты Сборки
+
+Когда вы собираете игру, вам нужно выбрать тип движка, который вы хотите использовать.
+
+  * Debug
+  * Release
+  * Headless
+
+Эти различные версии также называются `вариантами сборки`.
+
+Примечание: Когда вы выберете `Build and run`, вы получите отладочную версию.
+
+### Debug
+
+В этом типе исполняемого файла еще остались функции отладки, такие как профилирование, протоколирование и горячая перезагрузка. Этот вариант выбирается во время разработки игры.
+
+### Release
+
+В этом варианте функции отладки отключены. Этот вариант выбирается, когда игра готова к выпуску в магазин приложений.
+
+### Headless
+
+Этот исполняемый файл запускается без графики и звука. Это означает, что вы можете запускать игровые юнит/дымовые тесты на CI-сервере или даже иметь его в качестве игрового сервера в облаке.
+
+## App Manifest
+
+С помощью функции Native Extensions вы можете не только добавлять в движок нативный код, но и удалять стандартные части движка. Например, если вам не нужен физический движок, вы можете удалить его из исполняемого файла.
+
+Мы поддерживаем это с помощью файла, называемого `App Manifest` (.appmanifest). В таком файле вы можете указать, какие библиотеки или символы удалить, или, возможно, добавить флаги компиляции
+
+Эта функция находится в стадии разработки и совершенствования.
+
+### Комбинированный контекст
+
+Манифест приложения фактически имеет ту же структуру и синтаксис, что и манифест расширения. Это позволяет нам объединять контексты для одной платформы вместе при окончательной сборке.
+
+А сам Defold имеет свой собственный манифест сборки в качестве основы (`build.yml`). Для каждого расширения, которое собирается, манифесты объединяются следующим образом:
+
+	manifest = merge(game.appmanifest, ext.manifest, build.yml)
+
+Это делается для того, чтобы пользователь мог переопределить поведение по умолчанию движка, а также каждого расширения. И, на последнем этапе соединения, мы объединяем манифест приложения с манифестом Defold:
+
+	manifest = merge(game.appmanifest, build.yml)
+
+### Редактирование
+
+В настоящее время этот процесс можно выполнить вручную, но мы рекомендуем нашим пользователям использовать [Manifestation](https://britzl.github.io/manifestation/) инструмент для создания манифеста приложения. В конечном итоге создание и изменение манифестов приложений будет осуществляться в редакторе.
+
+### Синтаксис
+
+Вот пример из [Manifestation](https://britzl.github.io/manifestation/) для справки (Может быть изменен. Не копируйте этот файл напрямую. Вместо этого используйте онлайн-инструмент):
+
+	platforms:
+	    x86_64-osx:
+	        context:
+	            excludeLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    x86_64-linux:
+	        context:
+	            excludeLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    js-web:
+	        context:
+	            excludeLibs: []
+	            excludeJsLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    wasm-web:
+	        context:
+	            excludeLibs: []
+	            excludeJsLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    x86-win32:
+	        context:
+	            excludeLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    x86_64-win32:
+	        context:
+	            excludeLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    armv7-android:
+	        context:
+	            excludeLibs: []
+	            excludeJars: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    armv7-ios:
+	        context:
+	            excludeLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+	    arm64-ios:
+	        context:
+	            excludeLibs: []
+	            excludeSymbols: []
+	            libs: []
+	            linkFlags: []
+
+
+#### Белый листинг
+
+Для всех ключевых слов мы применяем фильтр белых списков. Это делается для того, чтобы избежать незаконной работы с путями и доступа к файлам вне папки загрузки сборки.
+
+#### linkFlags
+
+Здесь вы можете добавить флаги для компилятора конкретной платформы
+
+#### libs
+
+Этот флаг используется только в том случае, если вы хотите добавить библиотеку, которая является частью платформы или Defold SDK. Все библиотеки в расширениях вашего приложения добавляются автоматически, и вы не должны добавлять их в этот флаг. Вот пример, в котором 3D-физика удалена из движка:
+
+    x86_64-linux:
+        context:
+            excludeLibs: ["physics","LinearMath","BulletDynamics","BulletCollision"]
+            excludeSymbols: []
+            libs: ["physics_2d"]
+            linkFlags: []
+
+#### Флаги исключений
+
+Эти флаги используются для удаления вещей, ранее определенных в контексте платформы. Вот пример того, как удалить расширение Facebook из движка (обратите внимание на `(.*)`, которое является регулярным выражением, чтобы помочь удалить нужные элементы).
+
+    armv7-android:
+        context:
+            excludeLibs: ["facebookext"]
+            excludeJars: ["(.*)/facebooksdk.jar","(.*)/facebook_android.jar"]
+            excludeSymbols: ["FacebookExt"]
+            libs: []
+            linkFlags: []
+
+#### Где список всех флагов, библиотек, символов???
+
+Мы могли бы разместить некоторые из них здесь, но мы также считаем, что наше время лучше потратить на завершение функции перемещения конфигурации манифеста в редактор, сделав это простым шагом для пользователя.
+
+Тем временем мы будем обновлять инструмент [Manifestation](https://britzl.github.io/manifestation/).