William Brendaw

Passo a passo de como compilar localmente o Godot no macOS

26 de Abril de 2024 · 5 minutos

Estou voltando a desenvolver o jogo Small River pelo meu estúdio e tive que atualizar o código do Godot para poder adicionar o recurso de reconhecer controles sem fio no macOS.

Essa atualização é feita através de uma customização antes da compilação, porque a versão estável ainda não possui o recurso dos controles.

Essa parte de gerenciar o código customizado do Godot ficará para um próximo artigo, onde explicarei como que eu mesclo num repositório local o conteúdo estável com alterações propostas por pull requests no projeto, mas que ainda não subiram para a versão oficial.

Como preciso fazer esse procedimento periodicamente, acabei virando especialista em como compilar o código-fonte do Godot e ter o editor com as funcionalidades que me atendem.

Por isso, compartilharei aqui como funciona esse processo de gerar o editor na mão, tal qual faziam os australopitecos.

Instalação do ferramental para a compilação

Instalações manuais

Antes de mais nada, é necessário instalar 3 programas que vão te ajudar a gerar o executável do Godot. São eles:

Home Brew

Porque é necessário: para instalar outros programas que ficam mais fáceis de gerenciar por ele.

Comando de instalação (também presente no site do projeto):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Xcode

Porque é necessário: para instalar ferramentas de compilação do macOS.

Nota: Mesmo que a instalação do Home Brew também tente instalar o Command Line Tools for Xcode, que traz de forma mais enxuta as ferramentas de compilação do macOS, por algum motivo no meu MacBook Pro não funcionou assim. Por isso ensino aqui como instalar o Xcode, para quem precisar contornar esse problema.

Apesar de existir a opção de instalar o Xcode pela App Store, sugiro fortemente fazer o download pela plataforma Apple Developer. Busque a versão mais atual e estável, para não arriscar ter algum comando de compilação quebrado na versão instável do Xcode.

Para instalar é muito fácil. Basta fazer o download do arquivo Xcode_XX.X.xip, depois clicar duas vezes nele para começar a descompactar o pacote Xcode.app e mover o pacote extraído para a pasta /Applications.

Após mover para a pasta /Applications, execute o pacote uma vez para finalizar as configurações do Xcode.

Vulkan SDK

Porque é necessário: para dar suporte a biblioteca gráfica Vulkan no editor, que não vem nativamente no macOS.

O processo de instalação dele é mais complicado, mas nem tanto. Após fazer o download do arquivo vulkan-sdk.dmg do site da biblioteca, monte a imagem no sistema clicando duas vezes no arquivo e execute o arquivo interno para iniciar o processo de instalação como se fosse um executável do Windows.

Quando pedir o caminho para instalar, escolha o /Library/Graphics/VulkanSDK/1.3.268.1 para seguir o padrão UNIX do sistema (lembrando que nesse exemplo o 1.3.268.1 é a versão que instalei no meu sistema. Esse número será conforme a versão disponível no momento da sua instalação).

Depois siga o processo até o final. Provavelmente pedirá para reiniciar o sistema e habilitar alguns serviços gráficos para rodar o Vulkan SDK de forma tranquila.

Instalações pelo Home Brew

Os outros 3 programas podem ser instalados pelo Home Brew, sem toda a complexidade dos programas anteriores. São eles:

Git

Porque é necessário: para poder clonar o repositório do Godot e compilar o mesmo.

Para instalar, basta rodar o comando abaixo no terminal:

brew install git

Python 3.6

Porque é necessário: para compilar o editor.

Mais um que é muito fácil de instalar, basta rodar o comando abaixo no terminal:

brew install python

Scons

Porque é necessário: para orquestrar as chamadas necessárias para compilar o editor.

Por fim, basta rodar o comando abaixo no terminal para instalar:

brew install scons

Compilação do editor

Após ter instalado tudo o que é necessário para compilar, chegou a hora de botar a mão na massa.

Clonar o repositório do Godot

Para começar, precisamos copiar o código do Godot para o computador.

Abra o terminal, entre na pasta onde ficam os teus projetos (no meu caso seria a pasta ~/Developer/Projetos) e rode o comando git clone https://github.com/godotengine/godot. Após finalizar o clone, entre na pasta do repositório.

A ordem dos comandos ficaria assim:

cd ~/Developer/Projetos
git clone https://github.com/godotengine/godot
cd godot

Compilar o editor do Godot

Agora chegou a hora da verdade. Vamos colocar o scons (e a tua máquina) para trabalhar.

Compilar para processadores Apple Silicon (M1, M2 e M3)

Só rodar o comando abaixo e ir passar um café para esperar concluir a compilação:

scons arch=arm64 platform=macos target=editor use_llvm=no -j4 vulkan_sdk_path=/Library/Graphics/VulkanSDK/1.3.268.1

Ao fim da execução, a compilação vai gerar um binário no caminho bin/godot.macos.editor.arm64.

Compilar para processadores Intel

Só rodar o comando abaixo e ir fazer um chá para esperar concluir a compilação:

scons arch=x86_64 platform=macos target=editor use_llvm=no -j4 vulkan_sdk_path=/Library/Graphics/VulkanSDK/1.3.268.1

Ao fim da execução, a compilação vai gerar um binário no caminho bin/godot.macos.editor.x86_64.

Empacotar binário universal para processadores

Caso você queira gerar um binário universal (ou seja, que rode tanto nos processadores Apple Silicon quanto nos Intel), basta rodar os dois comandos anteriores, em ordem, para gerar os dois binários para cada processador, e depois disso rodar o comando abaixo:

lipo -create bin/godot.macos.editor.x86_64 bin/godot.macos.editor.arm64 -output bin/godot.macos.editor.universal`

Gerar o pacote Godot.app a partir do binário compilado

Mesmo com o binário compilado, ele só funciona sendo chamado pelo terminal. Para simplificar o acesso do programa, é possível gerar o pacote Godot.app, podendo mover o mesmo para a pasta /Applications. Assim, o programa fica disponível pelo Spotlight e também pelo Launchpad.

A mágica acontece após rodar os comandos abaixo:

cp -r misc/dist/macos_tools.app ./Godot.app
mkdir -p Godot.app/Contents/MacOS
cp bin/godot.macos.editor.universal Godot.app/Contents/MacOS/Godot
chmod +x Godot.app/Contents/MacOS/Godot
codesign --force --timestamp --options=runtime --entitlements misc/dist/macos/editor.entitlements -s - Godot.app

E é isso! Agora tu conseguiu fazer a compilação do Godot “no braço”. Parabéns!

Espero que tenha gostado. Nos vemos por aí!

Referências: