2020-11-03 (火)
やること溜まってるのだけど気力が足りない...
* QuickJS
数年に一度くらいの頻度で,JavaScriptエンジンが欲しくなって V8 をビルドしてる気がするけど,ビルドに必要なものが多かったり,数年ぶりに見ると結構インターフェイス変わってたりで面倒.ちょっとスクリプトの実行環境を組み込みたいようなときV8はオーバースペックなので,小さくて使うのが簡単そうな QuickJS を試してみる.
少し前にQuickJS使おうとしたとき,Visual Studioでビルドするのが少し面倒そうだったのだけど,探してみたらVisual Studioでビルドできるようにパッチ当てたものがいくつかあった.https://github.com/c-smile/quickjspp これが最新のQuickJSを追いかけてるっぽいので良さげ.
基本的には用意されているバッチファイルを実行するだけで,Visual Studioのソリューションファイルが生成される.
ただ,出力先ディレクトリの設定がおかしくてプロジェクト開けなかったので,とりあえずpremake5.luaで targetdir ".bin/%{cfg.buildcfg}_%{cfg.architecture}/"
としておく.あと,Releaseビルド時に一部の関数がdllimportに置き換わってconst変数の初期化時にアドレスを参照できないようなので,深く考えずflags { staticruntime "On" }
も追加(問題なのはceilとfloorくらいなので適当な関数でラップするだけで良いかも).
premake初めて触ったけどCMakeと比べて初めてでも読みやすくて良い感じ.