Компіляція для macOS
Примітка
На цій сторінці описано, як скомпілювати редактор macOS і експортувати двійкові файли шаблону з джерела. Якщо ви натомість хочете експортувати свій проект у macOS, прочитайте Експорт на macOS.
Вимоги
Для компіляції під macOS необхідно:
SCons 4.0+ будувати систему.
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/ папка.
Автоматичне створення пакета .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, яка використовується для створення шаблонів експорту (щоб можна було включити всі бінарні файли). Ця опція також забезпечує виклик 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 без необхідності перекомпілювати шаблони експорту.
Потім ви можете стиснути папку macos_template.app, щоб відтворити шаблон macos.zip з офіційного дистрибутива Godot:
zip -r9 macos.zip macos_template.app
Крос-компіляція для 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 і повторіть спробу.