おはようございます。週末、次男が咳と熱を出したと思ったら、奥さんも珍しく熱が出て寝ています。@kjunichiです。
slコマンドをEmscriptenでJS化する
以前にslコマンドをEmscriptenを使って、JS化しているのでこれを使ってやってみた。
を参照。
2016年で変わった事
2014時点からいくつか変更した点がある。
PDCurses.jsがコンパイルエラー
- sdl1/pdcclip.c #include <string.h>の追加
- sdl1/pdckbd.c #include <stdlib.h>の追加
の2ファイルを修正する必要があった。
emccのオプションの変更
emcc -s ASYNCIFY=1 -O2 -Wall -fPIC -I. -DEMSCRIPTEN -o sl.html sl.c libpdcurses.a `sdl-config --libs` --preload-file ./pdcfont.bmp --use-preload-plugins -s BINARYEN=1
以前は--preload-file ファイル名の指定のみで済んだが、どうやら、「--use-preload-plugins」が必要になった。
WebAssembly化
上記のEmscriptenのオプションに加え、WebAssemblyに必要な「-s BINARYEN=1」オプションを指定。
あとはCanary Chromeで「chrome://flags/」でWebAssemblyを有効にして、
の手順で動かせた。
ちなみに、WebAssemblyが無効でも「no native wasm support detected」とコンソールに表示され、動く。