X11のコンパイル (Linux、*BSD)

必要条件

Linux またはその他の Unix バリアントでコンパイルするには、次のことが必要です:

  • GCCまたはClang
  • Python 3 or 2.7+
  • SCons build system (3.0 or later for Python 3)
  • pkg-config (以下の依存関係を検出するために使用)
  • X11、Xcursor、Xinerama、XiおよびXRandR開発ライブラリ
  • MesaGL開発ライブラリ
  • ALSA開発ライブラリ
  • PulseAudio開発ライブラリ
  • Optional - libudev (build with udev=yes)
  • Optional - yasm (for WebM SIMD optimizations)

参考

For a general overview of SCons usage for Godot, see ビルドシステムの説明.

ディストリビューション固有のワンライナー

Alpine Linux
apk add scons pkgconf gcc g++ libx11-dev libxcursor-dev libxinerama-dev libxi-dev libxrandr-dev \
    libexecinfo-dev
Arch Linux
pacman -S --needed scons pkgconf gcc libxcursor libxinerama libxi libxrandr mesa glu libglvnd \
    alsa-lib pulseaudio yasm
Debian / Ubuntu
sudo apt-get install build-essential scons pkg-config libx11-dev libxcursor-dev libxinerama-dev \
    libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm
Fedora
sudo dnf install scons pkgconfig libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel \
    libXi-devel mesa-libGL-devel mesa-libGLU-devel alsa-lib-devel pulseaudio-libs-devel \
    libudev-devel yasm
FreeBSD
sudo pkg install scons pkgconf xorg-libraries libXcursor libXrandr libXi xorgproto libGLU alsa-lib \
    pulseaudio yasm
Gentoo
emerge -an dev-util/scons x11-libs/libX11 x11-libs/libXcursor x11-libs/libXinerama x11-libs/libXi \
    media-libs/mesa media-libs/glu media-libs/alsa-lib media-sound/pulseaudio dev-lang/yasm
Mageia
urpmi scons task-c++-devel pkgconfig "pkgconfig(alsa)" "pkgconfig(glu)" "pkgconfig(libpulse)" \
    "pkgconfig(udev)" "pkgconfig(x11)" "pkgconfig(xcursor)" "pkgconfig(xinerama)" "pkgconfig(xi)" \
    "pkgconfig(xrandr)" yasm
OpenBSD
pkg_add python scons llvm yasm
openSUSE
sudo zypper install scons pkgconfig libX11-devel libXcursor-devel libXrandr-devel libXinerama-devel \
        libXi-devel Mesa-libGL-devel alsa-devel libpulse-devel libudev-devel libGLU1 yasm
Solus
sudo eopkg install -c system.devel scons libxcursor-devel libxinerama-devel libxi-devel \
    libxrandr-devel mesalib-devel libglu alsa-lib-devel pulseaudio-devel yasm

コンパイル

ターミナルを起動し、エンジンソースコードのルートディレクトリに移動し、次のように入力します:

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

A good rule of thumb for the -j (jobs) flag, is to have at least as many threads compiling Godot as you have cores in your CPU, if not one or two more. Feel free to add the -j option to any SCons command you see below.

すべてがうまくいけば、結果として得られるバイナリ実行可能ファイルは「bin」サブディレクトリに配置されます。この実行可能ファイルにはエンジン全体が含まれており、依存関係なしで実行されます。実行すると、プロジェクトマネージャが呼び出されます。

注釈

GCCではなくClangを使用してコンパイルする場合は、次のコマンドを使用します:

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

Clangを使うことはOpenBSDの要件のようで、そうしないとフォントが作れません。

注釈

If you are compiling Godot for production use, then you can make the final executable smaller and faster by adding the SCons option target=release_debug.

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

警告

Linux binaries usually won't run on distributions that are older than the distribution they were built on. If you wish to distribute binaries that work on most distributions, you should build them on an old distribution such as Ubuntu 16.04. You can use a virtual machine or a container to set up a suitable build environment.

X11(Linux、*BSD)エクスポートテンプレートをビルドするには、次のパラメーターを使用してビルド システムを実行します:

  • (32ビット)
[email protected]:~/godot$ scons platform=x11 tools=no target=release bits=32
[email protected]:~/godot$ scons platform=x11 tools=no target=release_debug bits=32
  • (64ビット)
[email protected]:~/godot$ scons platform=x11 tools=no target=release bits=64
[email protected]:~/godot$ scons platform=x11 tools=no target=release_debug bits=64

Note that cross-compiling for the opposite bits (64/32) as your host platform is not always straight-forward and might need a chroot environment.

標準のエクスポート テンプレートを作成するには、結果のファイルを次の場所にコピーする必要があります:

$HOME/.local/share/godot/templates/[gd-version]/

そして、このように命名されます (Godotでは*BSD の場合も「Linux X11」と見なされます):

linux_x11_32_debug
linux_x11_32_release
linux_x11_64_debug
linux_x11_64_release

ただし、カスタムモジュールまたはカスタムC++ コードを作成する場合は、ここでカスタムエクスポート テンプレートとしてバイナリを構成する必要があります:

../../_images/lintemplates.png

You don't even need to copy them, you can just reference the resulting files in the bin/ directory of your Godot source folder, so the next time you build, you automatically have the custom templates referenced.