Compilation pour le Web

Pré-requis

Pour compiler des modèles d'exportation pour le Web, ce qui suit est nécessaire :

Voir aussi

Pour un aperçu général de l'utilisation de SCons pour Godot, voir Introduction au buildsystem.

Création de modèles d'exportation

Avant de commencer, confirmez que le fichier de configuration Emscripten existe et spécifiez correctement tous les paramètres. Ce fichier est disponible sous la forme ~/.emscripten sur les systèmes de type UNIX et %USERPROFILE%\.emscripten sur Windows. Il est généralement écrit par le SDK Emscripten, par exemple lorsque vous invoquez emsdk activate latest, ou par votre gestionnaire de paquets. Il est également créé lors du démarrage du programme emcc d'Emscripten si le fichier n'existe pas.

Attention

Sous Windows, assurez-vous d'échapper les antislashs des chemins dans le fichier de configuration Emscripten sous la forme de doubles antislashes \\ ou utilisez des chemins de style Unix avec un seul slash /.

Ouvrez un terminal et naviguez jusqu'au répertoire racine du code source du moteur. Ensuite, demandez à SCons de construire la plate-forme JavaScript. Spécifiez target comme étant soit release pour une version release, soit release_debug pour une version de débogage :

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

Par défaut, le singleton JavaScript <doc_javascript_eval> sera intégré au moteur. Comme les appels ``eval()` peuvent être un problème de sécurité, l'option javascript_eval peut être utilisée pour construire sans le singleton :

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

Le moteur sera maintenant compilé en WebAssembly par Emscripten. Une fois terminé, le fichier résultant sera placé dans le sous-répertoire bin. Son nom est godot.javascript.opt.zip pour une version release ou godot.javascript.opt.debug.zip pour une version de débogage.

Enfin, renommez l'archive zip en webassembly_release.zip pour le modèle release :

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

Et webassembly_debug.zip pour le modèle de débogage :

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

Construction par traduction asm.js ou backend LLVM

WebAssembly peut être compilé de deux façons : La première consiste à compiler par défaut vers asm.js, un sous-ensemble hautement optimisable de JavaScript, en utilisant le fork fastcomp d'Emscripten de LLVM. Ce code est ensuite traduit en WebAssembly à l'aide d'un outil appelé asm2wasm. Emscripten s'occupe automatiquement des deux processus, nous exécutons simplement SCons.

L'autre méthode utilise le backend WebAssembly de LLVM. Ce backend est disponible à partir de LLVM 8 ou dans les versions de développement. Emscripten gère également ce processus, de sorte que nous invoquons simplement SCons.

Pour choisir l'une des deux méthodes, on utilise la variable LLVM_ROOT du fichier de configuration Emscripten. Si elle pointe vers un répertoire contenant des binaires du fork fastcomp de clang de Emscripten, asm2wasm est utilisée. C'est la valeur par défaut dans une installation normale d'Emscripten. Sinon, des binaires LLVM construits avec le backend WebAssembly seront attendus et le backend WebAssembly de LLVM sera utilisé.