Компіляція для 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
Вирішення проблем
Fatal error: 'cstdint' file not found
If you get a compilation error of this form early on, it's likely because the Xcode command line tools installation needs to be repaired after a macOS or Xcode update:
./core/typedefs.h:45:10: fatal error: 'cstdint' file not found
45 | #include <cstdint>
| ^~~~~~~~~
Run these two commands to reinstall Xcode command line tools (enter your administrator password as needed):
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
If it still does not work, try updating Xcode from the Mac App Store and try again.