Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

How can I compile OpenCV.js so that it does not require defining the "onRuntimeInitialized" field?

I'm trying to expose more opencv modules to the existing opencv.js javascript module.

Following the official opencv instructions https://docs.opencv.org/3.4.5/d4/da1/tutorial_js_setup.html, I was able to build a wasm version of opencv.js (see here for more details), but it behaves differently than the one provided in the npm pkg - https//www.npmjs.com/package/opencv.js

Specifically, the opencv.js I built require me to define the "onRuntimeInitialized" field in the imported module (as reported by others, see here) where the one provided in npm pkg does not (see here, their module does not have "onRuntimeInitialized" and "wasmMaxTableSize", "wasmMemory", ... that are existing in the opencv.js I built).

I believe I can build opencv like the person who built the opencv.js like changing some emscripten flags for, but can't figure out what those flags are. Here are some places where the build script provided by opencv is setting emscripten flags: * https://github.com/mjyc/opencv/blob/js3.4.5_calib3d/platforms/js/build_js.py#L151 * https://github.com/mjyc/opencv/blob/js3.4.5_calib3d/modules/js/CMakeLists.txt#L87-L93

How can I can build an wasm so it does not require me to define "onRuntimeInitialized" but loads all required modules at the import time?

I asked the same question in other places as well... * https://groups.google.com/forum/#!topic/emscripten-discuss/fHk4cKE6l70 * https://github.com/huningxin/opencv/issues/245

How can I compile OpenCV.js so that it does not require defining the "onRuntimeInitialized" field?

I'm trying to expose more opencv modules to the existing opencv.js javascript module.

Following the official opencv instructions https://docs.opencv.org/3.4.5/d4/da1/tutorial_js_setup.html, I was able to build a wasm version of opencv.js (see here for more details), but it behaves differently than the one provided in the npm pkg - https//www.npmjs.com/package/opencv.js

Specifically, the opencv.js I built require me to define the "onRuntimeInitialized" field in the imported module (as reported by others, see here) where the one provided in npm pkg does not (see here, their module does not have "onRuntimeInitialized" and "wasmMaxTableSize", "wasmMemory", ... that are existing in the opencv.js I built).

I believe I can build opencv like the person who built the opencv.js like changing some emscripten flags for, but can't figure out what those flags are. Here are some places where the build script provided by opencv is setting emscripten flags: * https://github.com/mjyc/opencv/blob/js3.4.5_calib3d/platforms/js/build_js.py#L151 * https://github.com/mjyc/opencv/blob/js3.4.5_calib3d/modules/js/CMakeLists.txt#L87-L93

How can I can build an wasm so it does not require me to define "onRuntimeInitialized" but loads all required modules at the import time?

I asked the same question in other places as well... * https://groups.google.com/forum/#!topic/emscripten-discuss/fHk4cKE6l70 * https://github.com/huningxin/opencv/issues/245