Web用のコンパイル

必要条件

Webのエクスポートテンプレートをコンパイルするには、次のことが必要です:

参考

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

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

開始する前に、Emscripten構成ファイルが存在することを確認し、すべての設定を正しく指定します。このファイルは、UNIX ライクなシステムでは``~/.emscripten`` 、Windows では %USERPROFILE%\.emscripten として使用できます。通常はEmscripten SDKで書かれていて、例えば emsdk activate latest を起動した時や、またはパッケージマネージャによって呼び出す場合、また、ファイルが存在しない場合、Emscriptenの emcc プログラムを開始するときに作成されます。

注意

On Windows, make sure to escape backslashes of paths within the Emscripten configuration file as double backslashes \\ or use Unix-style paths with a single forward slash /.

ターミナルを開き、エンジンソース コードのルートディレクトリに移動します。次に、SConsにJavaScriptプラットフォームの構築を指示します。 target をリリース ビルドの release またはデバッグ ビルドの release_debug として指定します:

scons platform=javascript tools=no target=release
scons platform=javascript tools=no target=release_debug

デフォルトでは、JavaScriptシングルトンがエンジンに組み込まれます。 eval() '呼び出しはセキュリティ上の問題になる可能性があるため、 javascript_eval オプションを使用してシングルトンなしでビルドできます:

scons platform=javascript tools=no target=release javascript_eval=no
scons platform=javascript tools=no target=release_debug javascript_eval=no

これで、エンジンはEmscriptenによってWebAssemblyにコンパイルされます。完了すると、結果のファイルは bin サブディレクトリに配置されます。名前は godot.javascript.opt.zip (リリース用)か、``godot.javascript.opt.debug.zip``(デバッグ用)です。

最後に、リリース テンプレートのzipアーカイブの名前を webassembly_release.zip に変更します:

mv bin/godot.javascript.opt.zip bin/webassembly_release.zip

デバッグテンプレートの webassembly_debug.zip :

mv bin/godot.javascript.opt.debug.zip bin/webassembly_debug.zip

asm.js変換または LLVMバックエンドごとのビルド

WebAssemblyは2つの方法でコンパイルできます。デフォルトでは、EmscriptenのLLVMのfastcompフォークを使用して、JavaScriptの高度に最適化可能なサブセットであるasm.jsに最初にコンパイルします。 このコードは、 asm2wasm というツールを使用してWebAssemblyに変換されます。 Emscriptenは両方のプロセスを自動的に処理します。SConsを実行するだけです。

The other method uses LLVM's WebAssembly backend. This backend is available starting with LLVM 8 or in development builds. Emscripten manages this process as well, so we just invoke SCons.

In order to choose one of the two methods, the LLVM_ROOT variable in the Emscripten configuration file is used. If it points to a directory containing binaries of Emscripten's fastcomp fork of clang, asm2wasm is used. This is the default in a normal Emscripten installation. Otherwise, LLVM binaries built with the WebAssembly backend will be expected and the LLVM's WebAssembly backend is used.