diff options
author | Robert Aboukhalil <robert.aboukhalil@gmail.com> | 2023-07-19 08:04:39 -0700 |
---|---|---|
committer | Nico Williams <nico@cryptonector.com> | 2023-07-19 13:07:46 -0500 |
commit | 4c25cf3f7cfc83b2d75d8997c70da86a302dc1da (patch) | |
tree | 55e06c2fc8cae0b8012d8d4b3fbbc72f06155754 | |
parent | f1c49473a36bd5068031f2dca4f8cdc7c5dddb70 (diff) |
Reset options to 0 so can call main() multiple times in a row
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | src/main.c | 6 |
2 files changed, 13 insertions, 0 deletions
@@ -66,6 +66,13 @@ cross-compilation environment. See also ["Cross compilation"](https://github.com/jqlang/jq/wiki/Cross-compilation) on the wiki. +To compile jq to WebAssembly, install the [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html), then: + + git submodule update --init # if building from git to get oniguruma + autoreconf -i # if building from git + emconfigure ./configure --with-oniguruma=builtin --disable-maintainer-mode + emmake make EXEEXT=.js CFLAGS="-O2" LDFLAGS="-s EXPORTED_RUNTIME_METHODS=['callMain']" + # Community @@ -292,6 +292,12 @@ int main(int argc, char* argv[]) { _setmode(fileno(stderr), _O_TEXT | _O_U8TEXT); #endif +#ifdef __EMSCRIPTEN__ + /* When compiling to WebAssembly with Emscripten, reset options to ensure we can + call main() multiple times without reinitializing the WebAssembly module. */ + options = 0; +#endif + if (argc) progname = argv[0]; jq = jq_init(); |