Distribution de travail : Ubuntu 22.04 LTS
Prérequis : Gcc : Version 11
Lien : https://emscripten.org/docs/getting_started/downloads.html
util01@station40:~$ mkdir -p EMSCRIPTEN
util01@station40:~$ cd EMSCRIPTEN/
util01@station40:~/EMSCRIPTEN$
util01@station40:~/EMSCRIPTEN$ git clone https://github.com/emscripten-core/emsdk.git
util01@station40:~/EMSCRIPTEN$ cd emsdk/
util01@station40:~/EMSCRIPTEN/emsdk$
util01@station40:~/EMSCRIPTEN/emsdk$ git pull
util01@station40:~/EMSCRIPTEN/emsdk$ ./emsdk install latest
util01@station40:~/EMSCRIPTEN/emsdk$ ./emsdk activate latest
util01@station40:~/EMSCRIPTEN/emsdk$ source ./emsdk_env.sh
util01@station40:~/EMSCRIPTEN/emsdk$ cd
util01@station40:~$
Liens : https://umoria.org/ https://github.com/jhirschberg70/browser-based-umoria
util01@station40:~$ mkdir -p JEUX/ROGUELIKE/bbumoria
util01@station40:~$ cd JEUX/ROGUELIKE/bbumoria/
util01@station40:~/JEUX/ROGUELIKE/bbumoria$
util01@station40:~/JEUX/ROGUELIKE/bbumoria$ git clone https://github.com/jhirschberg70/browser-based-umoria.git
util01@station40:~/JEUX/ROGUELIKE/bbumoria$ cd browser-based-umoria/
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ mv CMakeLists.txt CMakeLists.txt.bak
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ cp CMakeLists.txt.emscripten CMakeLists.txt
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ cmake . -DCMAKE_TOOLCHAIN_FILE=$EMSDK/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ make
...
[ 1%] Linking CXX executable umoria/umoria.min.js
cache:INFO: generating system asset: symbol_lists/dae7d464f5b4d1031879b52671b68b47d69df15b.json... (this will be cached in "/home/util01/EMSCRIPTEN/emsdk/upstream/emscripten/cache/symbol_lists/dae7d464f5b4d1031879b52671b68b47d69df15b.json" for subsequent builds)
cache:INFO: - ok
[100%] Built target umoria
Erreur 1 :
the error message may be clearer with -g1 and EMCC_DEBUG=2 set
Solution :
Ouvrir :
CMakeLists.txt
Chercher :
set(link_flags "-O3 -fno-rtti -lidbfs.js
Remplacer par :
set(link_flags "-g1 -O3 -fno-rtti -lidbfs.js
Erreur 2 :
building:ERROR: /tmp/emscripten_temp_l1m28vhv/umoria.min.jso4.js:391:1: ERROR - [JSC_UNDEFINED_VARIABLE] variable ccall is undeclared
391| ccall("setSavePath", null, [ "string", "string" ], [ scoresPath, savePath ]);
Solution :
Ouvrir :
CMakeLists.txt
Chercher :
-s EXPORTED_FUNCTIONS='[_main, _setSavePath]'
Ajouter après :
-s EXPORTED_RUNTIME_METHODS=ccall,cwrap
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ cmake --install .
-- Install configuration: "Release"
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$ ls -l umoria/
total 1916
-rw-r--r-- 1 util01 www-data 2857 oct. 12 21:00 AUTHORS
drwxr-xr-x 2 util01 www-data 4096 oct. 12 21:25 data
-rw-r--r-- 1 util01 www-data 35149 oct. 12 21:00 LICENSE
-rw-r--r-- 1 util01 www-data 76 oct. 12 21:00 scores.dat
-rw-r--r-- 1 util01 www-data 955164 oct. 12 21:26 umoria.html
-rw-r--r-- 1 util01 www-data 954171 oct. 12 21:26 umoria.min.js
util01@station40:~/JEUX/ROGUELIKE/bbumoria/browser-based-umoria$
Depuis le navigateur Internet Firefox, ouvrir le fichier local :
file:///home/util01/JEUX/ROGUELIKE/bbumoria/browser-based-umoria/umoria/umoria.html
Pour jouer via Internet :