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.

CLion

CLion é uma IDE da JetBrains para C++ que é gratuita para desenvolvimento individual e não comercial.

Importando o projeto

O CLion pode importar um arquivo de banco de dados de compilação de um projeto, comumente chamado de compile_commands.json. Para gerar o arquivo de banco de dados de compilação, abra o terminal, mude para o diretório raiz do Godot e execute:

scons compiledb=yes compile_commands.json

Em seguida, abra o diretório raiz do Godot com o CLion e aguarde o projeto ser totalmente indexado. Se o completamento de código, as informações de parâmetros ou a refatoração não estiverem ativados, você precisará carregar o projeto com o CMake. Para fazer isso, encontre o arquivo CMakeLists.txt no diretório platform\android\java\nativeSrcsConfigs, clique com o botão direito e selecione Load CMake Project. Assim que o projeto for recarregado, uma configuração de compilação godot será adicionada. Essa configuração pode ser excluída com segurança, pois o arquivo CMake não compilará o projeto e existe apenas para carregar o projeto em IDEs da JetBrains.

Nota

Usuários Windows:

Para que o compile_commands.json seja carregado corretamente no CLion, você deve primeiro ter a toolchain do Visual Studio configurada para o CLion.

  • Navigate to Settings > Build, Execution, Deployment > Toolchains

  • Click the + button and select Visual Studio

  • O CLion tentará detectar sua instalação do Visual Studio. Se não for bem-sucedido, use o ícone de arquivo à direita de Toolset: para selecionar o diretório com a sua instalação do Visual Studio.

Você pode sair e recarregar o CLion e ele recarregará o compile_commands.json

../../../_images/clion_visual_studio_toolchain.webp

Compilando e depurando o projeto

O CLion não suporta a compilação e depuração do Godot via SCons nativamente. Isso pode ser alcançado criando um alvo de compilação (build target) personalizado e uma configuração de execução no CLion. Antes de criar um alvo de compilação personalizado, você deve compilar o Godot uma vez na linha de comando para gerar o executável do Godot. Abra o terminal, mude para o diretório raiz do Godot e execute:

scons dev_build=yes

Para adicionar um alvo de compilação personalizado que invoca o SCons para compilação:

  • Open CLion and navigate to Settings > Build, Execution, Deployment > Custom Build Targets

../../../_images/clion-preferences.png
  • Clique em Add target e dê um nome ao alvo, por exemplo, Godot debug.

../../../_images/clion-target.png
  • Clique em ... ao lado da caixa de seleção Build: e, em seguida, clique no botão + na caixa de diálogo External Tools para adicionar uma nova ferramenta externa.

../../../_images/clion-external-tools.png
  • Dê um nome à ferramenta, por exemplo, Build Godot debug, defina Program como scons, defina Arguments para as configurações de compilação que você deseja (veja compiling Godot) e defina o Working directory como $ProjectFileDir$, que equivale ao diretório raiz do Godot. Clique em OK para criar a ferramenta.

    Nota

    O CLion não expande comandos de shell como scons -j$(nproc). Use valores concretos em vez disso, por exemplo, scons -j8.

../../../_images/clion-create-build-tool.webp
  • De volta à caixa de diálogo External Tools, clique no + novamente para adicionar uma segunda ferramenta externa para limpar a compilação do Godot via SCons. Dê um nome à ferramenta, por exemplo, Clean Godot debug, defina o Program como scons, defina os Arguments como -c (o que limpará a compilação) e defina o Working directory como $ProjectFileDir$. Clique em OK para criar a ferramenta.

../../../_images/clion-create-clean-tool.png
  • Feche a caixa de diálogo External Tools. Na caixa de diálogo Custom Build Target para o alvo de compilação personalizado Godot debug, selecione a ferramenta Build Godot debug na caixa de seleção Build e selecione a ferramenta Clean Godot debug na caixa de seleção Clean. Clique em OK para criar o alvo de compilação personalizado.

../../../_images/clion-select-tools.png
  • Na janela principal da IDE, clique em Add Configuration.

../../../_images/clion-add-configuration.png
  • Na caixa de diálogo Run/Debug Configuration, clique em Add new... e selecione Custom Build Application para criar uma nova configuração personalizada de execução/depuração.

../../../_images/clion-add-custom-build-application.png
  • Dê um nome à configuração de execução/depuração, por exemplo, Godot debug, selecione o alvo de compilação personalizado Godot debug como o Target. Selecione o executável do Godot na pasta bin/ como o Executable e defina os Program arguments como --editor --path caminho-para-o-seu-projeto/, onde caminho-para-o-seu-projeto/ deve ser um caminho que aponta para um projeto existente do Godot. Se você omitir o argumento --path, você só poderá depurar a janela do Gerenciador de Projetos do Godot. Clique em OK para criar a configuração de execução/depuração.

../../../_images/clion-run-configuration.png

Agora você pode compilar, executar, depurar, analisar o perfil (profile) e fazer a verificação com o Valgrind do editor do Godot por meio da configuração de execução.

../../../_images/clion-build-run.png

Ao rodar uma cena, o editor do Godot gerará um processo separado. Você pode depurar esse processo no CLion acessando Run > Attach to process..., digitando godot e selecionando o processo do Godot com o maior pid (ID do processo), que geralmente será o projeto em execução.

Ignorando arquivos de objeto e biblioteca

Após compilar o Godot no CLion, você poderá ver os arquivos de objeto e de biblioteca aparecendo na visualização do Project.

../../../_images/clion-object-library-files-in-project-view.webp

Você pode configurar o CLion para ignorar esses arquivos:

  • Open CLion and navigate to Settings > Editor > File Types > Ignored Files and Folders

  • Clique no botão + para adicionar *.o e *.a à lista. No Windows, você adicionaria *.obj e *.dll.

../../../_images/clion-ignore-object-library-files.webp

Agora, os arquivos devem ser ignorados na visualização Project.