From 35bee663ebf28ee71d968d988811b3546f533e6d Mon Sep 17 00:00:00 2001 From: Hamdi Sahloul Date: Thu, 20 Sep 2018 20:55:45 +0900 Subject: [PATCH 1/2] JS: Improves Emscripten detection --- modules/js/CMakeLists.txt | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/modules/js/CMakeLists.txt b/modules/js/CMakeLists.txt index 6d713d4bd9..3d7caeb1c3 100644 --- a/modules/js/CMakeLists.txt +++ b/modules/js/CMakeLists.txt @@ -9,10 +9,29 @@ set(MODULE_NAME js) set(OPENCV_JS "opencv.js") +find_path(EMSCRIPTEN_INCLUDE_DIR + emscripten/bind.h + PATHS + ENV EMSCRIPTEN_ROOT + PATH_SUFFIXES system/include include + DOC "Location of Emscripten SDK") + +if(NOT EMSCRIPTEN_INCLUDE_DIR OR NOT PYTHON_DEFAULT_AVAILABLE) + set(DISABLE_MSG "Module ${MODULE_NAME} disabled because the following dependencies are not found:") + if(NOT EMSCRIPTEN_INCLUDE_DIR) + message(STATUS "\${EMSCRIPTEN_INCLUDE_DIR}/emscripten/bind.h` was not detected") + set(DISABLE_MSG "${DISABLE_MSG} Emscripten") + endif() + if(NOT PYTHON_DEFAULT_AVAILABLE) + set(DISABLE_MSG "${DISABLE_MSG} Python") + endif() + message(STATUS ${DISABLE_MSG}) + ocv_module_disable(${MODULE_NAME}) +endif() + ocv_add_module(${MODULE_NAME} BINDINGS) -# TODO: add emscripten path -ocv_module_include_directories() +ocv_module_include_directories(${EMSCRIPTEN_INCLUDE_DIR}) # get list of modules to wrap # message(STATUS "Wrapped in ${MODULE_NAME}:") From 95b1fe0776dd10b4e9f684ca2605c1898c0ca343 Mon Sep 17 00:00:00 2001 From: Hamdi Sahloul Date: Thu, 20 Sep 2018 20:56:21 +0900 Subject: [PATCH 2/2] JS: Provides meaningful message in case of compile issues --- modules/js/src/make_umd.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/js/src/make_umd.py b/modules/js/src/make_umd.py index 4bca6c152b..7f7dffc880 100644 --- a/modules/js/src/make_umd.py +++ b/modules/js/src/make_umd.py @@ -103,4 +103,7 @@ if __name__ == "__main__": if len(sys.argv) > 2: opencvjs = sys.argv[1] cvjs = sys.argv[2] + if not os.path.isfile(opencvjs): + print('opencv.js file not found! Have you compiled the opencv_js module?') + exit() make_umd(opencvjs, cvjs);