ビルドシステムの説明

SCons

Godotはビルドするために`SCons <https://www.scons.org/>`__を使用します。私たちはそれが好きなので他のものに変えるつもりはありません。他のビルドシステムがGodotをビルドすることができるかさえ、確信がありません。ビルドシステムをCMakeやVisual Studioに変更するようリクエストをよく受けますが、そうする気はありません。他のシステムではなくSConsを選ぶのには多くの理由があります。例えば。

  • Godot can be compiled for a dozen different platforms: all PC platforms, all mobile platforms, many consoles, and WebAssembly.
  • 開発者は、多くの場合、複数のプラットフォーム を同時にコンパイルする必要があります、または同じプラットフォームの異なるターゲットをコンパイルする必要があります。毎回プロジェクトを再構成して再構築する余裕はありません。SConsは、ビルドを壊すことなく、労なくこれを行うことができます。
  • 変更、構成、追加、削除などの回数にかかわらず、SConsはビルドを中断することはありません。SConsでクリーニングとリビルドを行うよりも、落雷で死亡する可能性の方が高くなります。
  • Godotビルドプロセスは簡単ではありません。いくつかのファイルはコード(バインダー)によって生成され、他のファイルは解析(シェーダ)であり、他のファイルはカスタマイズ(プラグイン)を提供する必要があります。これには、構築のみを意図したマクロベースの言語を使用するのではなく、実際のプログラミング言語(Pythonなど)で記述する方が簡単な複雑なロジックが必要です。
  • Godot build process makes heavy use of cross-compiling tools. Each platform has a specific detection process, and all these must be handled as specific cases with special code written for each.

ですので、あなたがGodotを自分で構築することを計画している場合は、オープンマインドを維持し、少なくともそれに少し精通してみてください。

セットアップ

以下のドキュメントを参照して下さい: Android用のコンパイルiOS用のコンパイルCompiling for macOSユニバーサルWindowsプラットフォームのコンパイルWeb用のコンパイルWindows用のコンパイル及びX11のコンパイル (Linux、*BSD)

Windows/Visual Studioの場合、以下のコマンドを入力するには、標準のWindowsコマンドプロンプトではなく、インストールに応じてx86_x64Cross Tools Command Prompt for VS2017または同様のコマンドプロンプトを使用する必要があります。

プラットフォームの選択

Godot のビルドシステムは、ビルド可能なプラットフォームを検出することによって開始されます。検出されない場合、使用可能なプラットフォームの一覧に表示されません。各プラットフォームのビルド要件については、このチュートリアルの残りの部分で説明します。

SCons is invoked by just calling scons. If no platform is specified, SCons will detect the target platform automatically based on the host platform. It will then start building for the target platform right away.

To list the available target platforms, use scons platform=list:

[email protected]:~/godot$ scons platform=list
scons: Reading SConscript files ...
The following platforms are available:

    android
    javascript
    server
    windows
    x11

Please run SCons again and select a valid platform: platform=<string>

To build for a platform (for example, x11), run with the platform= (or p= to make it short) argument:

[email protected]:~/godot$ scons platform=x11

This will start the build process, which will take a while. If you want SCons to build faster, use the -j <cores> parameter to specify how many cores will be used for the build. Or leave it using one core, so you can use your computer for something else :)

4つのコアを使用する例:

[email protected]:~/godot$ scons platform=x11 -j 4

結果のバイナリ

The resulting binaries will be placed in the bin/ subdirectory, generally with this naming convention:

godot.<platform>.[opt].[tools/debug].<architecture>[extension]

前ビルドを試みると、結果は次のようになります:

[email protected]:~/godot$ ls bin
bin/godot.x11.tools.64

これは、バイナリがX11用であり、最適化されておらず、ツール(エディタ全体)が組み込まれており、64ビット用であることを意味します。

同じ設定のWindowsバイナリは次のようになります:

C:\godot> dir bin/
godot.windows.tools.64.exe

Copy that binary to any location you like, as it contains the project manager, editor and all means to execute the game. However, it lacks the data to export it to the different platforms. For that the export templates are needed (which can be either downloaded from godotengine.org, or you can build them yourself).

それとは別に、すべてのビルドターゲットで設定できるいくつかの標準オプションがあり、以下で説明します。

ツール

ツールは、すべてのPCターゲット(Linux、Windows、macOS)でデフォルトで有効になっています。ツールを無効にすると、プロジェクトを実行できるバイナリが生成されますが、編集者やプロジェクト マネージャは含まれません。

scons platform=<platform> tools=yes/no

ターゲット

ターゲットは最適化フラグとデバッグフラグを制御します。各モードの意味は次のとおりです:

  • debug: C++デバッグシンボル、ランタイムチェック(チェックを実行してエラーを報告する)を使用してビルドし、最適化なしでビルドします。
  • release_debug: Build without C++ debugging symbols and optimization, but keep the runtime checks (performs checks and reports errors). Official editor binaries use this configuration.
  • release: Build without symbols, with optimization and with little to no runtime checks. This target can't be used together with tools=yes, as the editor requires some debug functionality and run-time checks to run.
scons platform=<platform> target=debug/release_debug/release

This flag appends the .debug suffix (for debug), or .tools (for debug with tools enabled). When optimization is enabled (release), it appends the .opt suffix.

ビット

ビットは、バイナリを実行するCPUまたはOSのバージョンを制御するためのものです。主にデスクトッププラットフォームに焦点が当てられており、それ以外の場所では無視されています。

  • 32: Build binaries for 32-bit platforms.
  • 64: Build binaries for 64-bit platforms.
  • default: Build for the architecture that matches the host platform.
scons platform=<platform> bits=default/32/64

This flag appends .32 or .64 suffixes to resulting binaries when relevant. If bits=default is used, the suffix will match the detected architecture.

その他のビルドオプション

Godotのビルド方法 (コンパイラ、デバッグ オプションなど)と、インクルード/無効化する機能を構成するために使用できるビルドオプションは他にもいくつかあります。

コンパイルするバージョンの各オプションの詳細については、 scons --help の出力を確認してください。

テンプレートのエクスポート

公式エクスポートテンプレートは、Godot Engineサイトからダウンロードできます: godotengine.org。ただし、新しいモジュールが必要な場合、カスタム モジュールを使用している場合、または単に自分のシャドウを信頼しない場合は、自分でビルドすることもできます。

If you download the official export templates package and unzip it, you will notice that most files are optimized binaries or packages for each platform:

android_debug.apk
android_release.apk
javascript_debug.zip
javascript_release.zip
linux_server_32
linux_server_64
linux_x11_32_debug
linux_x11_32_release
linux_x11_64_debug
linux_x11_64_release
osx.zip
version.txt
windows_32_debug.exe
windows_32_release.exe
windows_64_debug.exe
windows_64_release.exe

To create those yourself, follow the instructions detailed for each platform in this same tutorial section. Each platform explains how to create its own template.

The version.txt file should contain the corresponding Godot version identifier. This file is used to install export templates in a version-specific directory to avoid conflicts. For instance, if you are building export templates for Godot 3.1.1, version.txt should contain 3.1.1.stable on the first line (and nothing else). This version identifier is based on the major, minor, patch (if present) and status lines of the version.py file in the Godot Git repository.

If you are developing for multiple platforms, macOS is definitely the most convenient host platform for cross-compilation, since you can cross-compile for almost every target (except for UWP). Linux and Windows come in second place, but Linux has the advantage of being the easier platform to set this up.