为Web平台编译
需求
要编译Web的导出模板,需要以下内容:
参见
有关Godot的SCons用法的一般概述,请参阅 构建系统介绍。
构建导出模板
在开始之前,请确认Emscripten配置文件存在并正确指定所有设置。这个文件在类UNIX系统上为 ~/.emscripten
,在Windows上为 %USERPROFILE%\.emscripten
。它通常由Emscripten SDK编写,例如当调用 emsdk activate latest
时,或者由您的包管理器调用。如果文件不存在,它也会在启动Emscripten的 emcc
程序时创建。
注意
在Windows平台上,确保将Emscripten配置文件中的路径反斜杠,转义为双反斜杠 \\
,或者使用带有单个正斜杠 /
的Unix式的路径。
打开终端并导航到引擎源代码的根目录。然后指示SCons构建JavaScript平台。为发布版本将 target
指定 release
,或为调试版本将 target
指定 release_debug
:
scons platform=javascript tools=no target=release
scons platform=javascript tools=no target=release_debug
By default, the JavaScript singleton will be built into the engine. Official export templates also have the JavaScript singleton enabled. Since eval()
calls can be a security concern, the javascript_eval
option can be used to build without the singleton:
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可以用两种方式编译:默认是首先使用Emscripten的 fastcomp LLVM分支编译为asm.js,这是一个高度可优化的JavaScript子集。然后使用名为 asm2wasm
的工具将此代码转换为WebAssembly。Emscripten会自动处理这两个进程,我们只需运行SCons。
另一种方法是使用LLVM的WebAssembly后端。此后端可从LLVM 8开始或在开发版本中使用。Emscripten也管理此过程,因此我们仅调用SCons。
为了选择两种方法中的一种,使用Emscripten配置文件中的 LLVM_ROOT
变量。如果它指向包含Emscripten的 fastcomp 分叉的clang的二进制文件的目录,则使用 asm2wasm
。这是常规Emscripten安装中的默认设置。否则,将使用WebAssembly后端构建的LLVM二进制文件,并使用LLVM的WebAssembly后端。