Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Компіляція для macOS
Примітка
На цій сторінці описано, як скомпілювати редактор macOS і експортувати двійкові файли шаблону з джерела. Якщо ви натомість хочете експортувати свій проект у macOS, прочитайте Експорт на macOS.
Вимоги
Для компіляції під macOS необхідно:
SCons 4.4+ build system.
Xcode (або більш легкі інструменти командного рядка для Xcode).
Vulkan SDK для MoltenVK (macOS не підтримує Vulkan із коробки). Останню версію Vulkan SDK можна швидко встановити, запустивши
misc/scripts/install_vulkan_sdk_macos.shу сховищі вихідних кодів Godot.
Примітка
Якщо у вас встановлено Homebrew, ви можете легко встановити SCons за допомогою такої команди:
brew install scons
Встановлення Homebrew також призведе до автоматичного отримання інструментів командного рядка для Xcode, якщо ви їх ще не маєте.
Аналогічно, якщо у вас встановлено MacPorts, ви можете легко встановити SCons за допомогою такої команди:
sudo port install scons
Дивись також
Щоб отримати вихідний код Godot для компіляції, перегляньте Отримання джерела.
Для загального огляду використання SCons для Godot див. Знайомство з системою побудови.
Компілювання
Запустіть термінал, перейдіть до кореневого каталогу вихідного коду двигуна.
Для компіляції для Mac на базі Intel (x86-64) використовуйте:
scons platform=macos arch=x86_64
Для компіляції для Mac на базі Apple Silicon (ARM64) використовуйте:
scons platform=macos arch=arm64
Порада
Якщо ви компілюєте Godot, щоб внести зміни або зробити внесок у механізм, ви можете використати параметри SCons dev_build=yes або dev_mode=yes. Перегляньте Псевдоніми розробки та виробництва для отримання додаткової інформації.
Якщо все піде добре, отриманий двійковий виконуваний файл буде розміщено в підкаталозі bin/. Цей виконуваний файл містить весь механізм і працює без будь-яких залежностей. Після його виконання з’явиться менеджер проекту.
Примітка
Не рекомендується використовувати окремий виконуваний файл редактора, його завжди слід упаковувати в пакет .app, щоб уникнути проблем з активацією інтерфейсу користувача.
Примітка
Якщо ви хочете використовувати окремі параметри редактора для власних збірок Godot та офіційних випусків, ви можете ввімкнути Автономний режим, створивши файл під назвою ._sc_ або _sc_ у bin/ папка.
Компіляція з підтримкою AccessKit
AccessKit забезпечує підтримку програм зчитування з екрана.
Compiling with AccessKit requires additional dependencies to be installed.
If you wish to skip this step, you can use the accesskit=no SCons option.
You can install the required dependencies by running
python misc/scripts/install_accesskit.py
in the Godot source repository. After running this script, compile Godot as usual.
Примітка
You can optionally build the godot-accesskit-static libraries yourself with the following steps:
Клонуйте каталог godot-accesskit-c-static та перейдіть до нього.
Виконайте таку команду:
cd accesskit-c
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cmake --install build
Статичну бібліотеку AccessKit слід зібрати за допомогою того ж компілятора, який ви використовуєте для збірки Godot.
To compile Godot with a custom build of AccessKit, add accesskit_sdk_path={path} to
tell SCons where to look for the AccessKit libraries:
scons platform=macos accesskit_sdk_path=<...>
Компіляція з підтримкою ANGLE
ANGLE provides a translation layer from OpenGL ES 3.x to Metal and can be used to improve support for the Compatibility renderer on some older GPUs with outdated OpenGL drivers.
Compiling with ANGLE requires additional dependencies to be installed.
If you wish to skip this step, you can use the angle=no SCons option.
You can install the required dependencies by running
python misc/scripts/install_angle.py
in the Godot source repository. After running this script, compile Godot as usual.
Примітка
За бажанням ви можете самостійно створити бібліотеки godot-angle-static, виконавши наступні дії:
Склонуйте каталог godot-angle-static і перейдіть до нього.
Виконайте таку команду:
git submodule update --init
./update_angle.sh
scons
You can also specify the build architecture using arch={architecture}.
The ANGLE static library should be built using the same compiler you are using for building Godot.
To compile Godot with a custom build of ANGLE, add angle_libs={path} to
tell SCons where to look for the ANGLE libraries:
scons platform=macos angle_libs=<...>
Автоматичне створення пакета .app
Щоб автоматично створити пакет .app, як в офіційних збірках, використовуйте опцію generate_bundle=yes в останній команді SCons, яка використовується для збірки редактора:
scons platform=macos arch=x86_64
scons platform=macos arch=arm64 generate_bundle=yes
Створення комплекту .app вручну
Щоб підтримувати обидві архітектури в одному бінарному файлі "Universal 2", виконайте дві команди вище, а потім скористайтеся lipo, щоб об'єднати їх:
lipo -create bin/godot.macos.editor.x86_64 bin/godot.macos.editor.arm64 -output bin/godot.macos.editor.universal
Щоб створити пакет .app, потрібно використовувати шаблон, розташований у misc/dist/macos_tools.app. Зазвичай, для оптимізованого бінарного файлу редактора, зібраного з dev_build=yes:
cp -r misc/dist/macos_tools.app ./bin/Godot.app
mkdir -p bin/Godot.app/Contents/MacOS
cp bin/godot.macos.editor.universal bin/Godot.app/Contents/MacOS/Godot
chmod +x bin/Godot.app/Contents/MacOS/Godot
codesign --force --timestamp --options=runtime --entitlements misc/dist/macos/editor.entitlements -s - bin/Godot.app
Примітка
Якщо ви створюєте гілку master, вам також потрібно включити підтримку бібліотеки переносимості MoltenVK Vulkan. За замовчуванням вона буде статично підключена з вашої інсталяції Vulkan SDK для macOS. Ви також можете вибрати динамічне підключення, передавши use_volk=yes та включивши динамічну бібліотеку до вашого пакета .app:
mkdir -p <Godot bundle name>.app/Contents/Frameworks
cp <Vulkan SDK path>/macOS/lib/libMoltenVK.dylib <Godot bundle name>.app/Contents/Frameworks/libMoltenVK.dylib
Запуск безголової/серверної збірки
Щоб запустити програму в headless режимі, який забезпечує функціональність редактора для експорту проектів автоматизованим способом, використовуйте звичайну збірку:
scons platform=macos target=editor
А потім використовуйте аргумент командного рядка --headless:
./bin/godot.macos.editor.x86_64 --headless
Щоб скомпілювати збірку налагоджувального сервера, яку можна використовувати з remote debugging tools, використовуйте:
scons platform=macos target=template_debug
Щоб скомпілювати збірку релізного сервера, оптимізовану для роботи виділених ігрових серверів, використовуйте:
scons platform=macos target=template_release production=yes
Збірка шаблонів експорту
Щоб створити шаблони експорту macOS, вам потрібно скомпілювати за допомогою цілей без редактора: target=template_release (шаблон випуску) і target=template_debug.
Офіційні шаблони — це двійкові файли Universal 2, які підтримують архітектури ARM64 і Intel x86_64.
Для підтримки ARM64 (Apple Silicon) + Intel x86_64:
scons platform=macos target=template_debug arch=arm64 scons platform=macos target=template_release arch=arm64 scons platform=macos target=template_debug arch=x86_64 scons platform=macos target=template_release arch=x86_64 generate_bundle=yes
Для підтримки лише ARM64 (Apple Silicon) (менший розмір файлу, але менша сумісність зі старішим обладнанням):
scons platform=macos target=template_debug arch=arm64 scons platform=macos target=template_release arch=arm64 generate_bundle=yes
Щоб створити пакет .app, як в офіційних збірках, вам потрібно використовувати шаблон, розташований у misc/dist/macos_template.app. Цей процес можна автоматизувати, використовуючи опцію generate_bundle=yes в останній команді SCons, яка використовується для створення шаблонів експорту (щоб можна було включити всі бінарні файли). Це створить файл godot_macos.zip у bin/, а також подбає про виклик lipo для створення бінарного файлу Universal 2 з двох окремих бінарних файлів ARM64 та x86_64 (якщо обидва були скомпільовані заздалегідь).
Примітка
Також потрібно включити підтримку бібліотеки переносимості MoltenVK Vulkan. За замовчуванням вона буде статично підключена з вашої інсталяції Vulkan SDK для macOS. Ви також можете вибрати динамічне підключення, передавши use_volk=yes та включивши динамічну бібліотеку до вашого пакета .app:
mkdir -p macos_template.app/Contents/Frameworks
cp <Vulkan SDK path>/macOS/libs/libMoltenVK.dylib macos_template.app/Contents/Frameworks/libMoltenVK.dylib
У більшості випадків слід віддавати перевагу статичному зв’язуванню, оскільки це полегшує розповсюдження. Основна перевага динамічного зв’язування полягає в тому, що воно дозволяє оновлювати MoltenVK без необхідності перекомпілювати шаблони експорту.
Якщо ви створили файл .app вручну, ви можете стиснути папку macos_template.app, щоб відтворити шаблон macos.zip з офіційного дистрибутива Godot:
zip -r9 macos.zip macos_template.app
Щоб використовувати власні шаблони експорту, ви можете вибрати файл godot_macos.zip у розширених налаштуваннях ваших пресетів експорту:
Або ж, якщо ви хочете, щоб усі ваші пресети використовували ваш власний шаблон експорту, ви можете перейменувати файл godot_macos.zip на macos.zip та перемістити його до місця за замовчуванням для шаблонів експорту:
- ::
~/Library/Application Support/Godot/export_templates/<GODOT_VERSION>/macos.zip
Крос-компіляція для macOS з Linux
Можна скомпілювати для macOS у середовищі Linux (і, можливо, також у Windows за допомогою підсистеми Windows для Linux). Для цього вам потрібно буде встановити OSXCross, щоб мати можливість використовувати macOS як ціль. Спочатку дотримуйтесь інструкцій, щоб встановити його:
Клонуйте репозиторій OSXCross кудись на вашому комп'ютері (або завантажте ZIP-файл та розпакуйте його кудись), наприклад:
git clone --depth=1 https://github.com/tpoechtrager/osxcross.git "$HOME/osxcross"
Дотримуйтесь інструкцій, щоб упакувати SDK: https://github.com/tpoechtrager/osxcross#packaging-the-sdk
Дотримуйтесь інструкцій для встановлення OSXCross: https://github.com/tpoechtrager/osxcross#installation
Після цього вам потрібно буде визначити OSXCROSS_ROOT як шлях до інсталяції OSXCross (той самий шлях, де ви клонували репозиторій/розпакували zip-архів), наприклад:
export OSXCROSS_ROOT="$HOME/osxcross"
Тепер ви можете компілювати з SCons, як зазвичай:
scons platform=macos
Якщо у вас версія OSXCross SDK, яка відрізняється від тієї, що очікується системою збірки SCons, ви можете вказати власну версію за допомогою аргументу osxcross_sdk:
scons platform=macos osxcross_sdk=darwin15
Вирішення проблем
Фатальна помилка: файл 'cstdint' не знайдено
Якщо ви отримуєте помилку компіляції такого вигляду на ранній стадії, це, ймовірно, тому, що інсталяцію інструментів командного рядка Xcode потрібно виправити після оновлення macOS або Xcode:
./core/typedefs.h:45:10: fatal error: 'cstdint' file not found
45 | #include <cstdint>
| ^~~~~~~~~
Виконайте ці дві команди, щоб перевстановити інструменти командного рядка Xcode (за потреби введіть пароль адміністратора):
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
Якщо це все ще не працює, спробуйте оновити Xcode з Mac App Store і повторіть спробу.