mirror of https://github.com/opencv/opencv.git
- unconditional js bindings source code generation - use common name for tests: opencv_test_jspull/18965/head
parent
b31ce408ae
commit
7e5c4fe1cd
8 changed files with 120 additions and 60 deletions
@ -0,0 +1 @@ |
|||||||
|
set(OPENCV_SKIP_LINK_AS_NEEDED 1) |
@ -0,0 +1,13 @@ |
|||||||
|
# get list of modules to wrap |
||||||
|
if(HAVE_opencv_js) |
||||||
|
message(STATUS "Wrapped in JavaScript(js):") |
||||||
|
endif() |
||||||
|
set(OPENCV_JS_MODULES "") |
||||||
|
foreach(m ${OPENCV_MODULES_BUILD}) |
||||||
|
if(";${OPENCV_MODULE_${m}_WRAPPERS};" MATCHES ";js;" AND HAVE_${m}) |
||||||
|
list(APPEND OPENCV_JS_MODULES ${m}) |
||||||
|
if(HAVE_opencv_js) |
||||||
|
message(STATUS " ${m}") |
||||||
|
endif() |
||||||
|
endif() |
||||||
|
endforeach() |
@ -0,0 +1,74 @@ |
|||||||
|
set(MODULE_NAME "js_bindings_generator") |
||||||
|
set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE) |
||||||
|
ocv_add_module(${MODULE_NAME} INTERNAL) |
||||||
|
|
||||||
|
set(OPENCV_JS_BINDINGS_DIR "${CMAKE_CURRENT_BINARY_DIR}" CACHE INTERNAL "") |
||||||
|
file(REMOVE_RECURSE "${OPENCV_JS_BINDINGS_DIR}/gen") |
||||||
|
file(MAKE_DIRECTORY "${OPENCV_JS_BINDINGS_DIR}/gen") |
||||||
|
file(REMOVE "${OPENCV_DEPHELPER}/gen_opencv_js_source") # force re-run after CMake |
||||||
|
|
||||||
|
# This file is included from a subdirectory |
||||||
|
set(JS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") |
||||||
|
include(${JS_SOURCE_DIR}/common.cmake) # fill OPENCV_JS_MODULES |
||||||
|
|
||||||
|
set(opencv_hdrs "") |
||||||
|
foreach(m ${OPENCV_JS_MODULES}) |
||||||
|
list(APPEND opencv_hdrs ${OPENCV_MODULE_${m}_HEADERS}) |
||||||
|
endforeach(m) |
||||||
|
|
||||||
|
# header blacklist |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/.*.h$") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/core/.*/cuda") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/core/.*/opencl") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/core/include/opencv2/core/opengl.hpp") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/core/include/opencv2/core/ocl.hpp") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/cuda.*") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/cudev") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/core/.*/hal/") |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/.*/detection_based_tracker.hpp") # Conditional compilation |
||||||
|
ocv_list_filterout(opencv_hdrs "modules/core/include/opencv2/core/utils/.*") |
||||||
|
|
||||||
|
ocv_update_file("${CMAKE_CURRENT_BINARY_DIR}/headers.txt" "${opencv_hdrs}") |
||||||
|
|
||||||
|
set(bindings_cpp "${OPENCV_JS_BINDINGS_DIR}/gen/bindings.cpp") |
||||||
|
|
||||||
|
set(scripts_hdr_parser "${JS_SOURCE_DIR}/../python/src2/hdr_parser.py") |
||||||
|
|
||||||
|
if(DEFINED ENV{OPENCV_JS_WHITELIST}) |
||||||
|
set(OPENCV_JS_WHITELIST_FILE "$ENV{OPENCV_JS_WHITELIST}") |
||||||
|
else() |
||||||
|
set(OPENCV_JS_WHITELIST_FILE "${OpenCV_SOURCE_DIR}/platforms/js/opencv_js.config.py") |
||||||
|
endif() |
||||||
|
|
||||||
|
add_custom_command( |
||||||
|
OUTPUT ${bindings_cpp} "${OPENCV_DEPHELPER}/gen_opencv_js_source" |
||||||
|
COMMAND |
||||||
|
${PYTHON_DEFAULT_EXECUTABLE} |
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/embindgen.py" |
||||||
|
"${scripts_hdr_parser}" |
||||||
|
"${bindings_cpp}" |
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/headers.txt" |
||||||
|
"${JS_SOURCE_DIR}/src/core_bindings.cpp" |
||||||
|
"${OPENCV_JS_WHITELIST_FILE}" |
||||||
|
COMMAND |
||||||
|
${CMAKE_COMMAND} -E touch "${OPENCV_DEPHELPER}/gen_opencv_js_source" |
||||||
|
WORKING_DIRECTORY |
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/gen" |
||||||
|
DEPENDS |
||||||
|
${JS_SOURCE_DIR}/src/core_bindings.cpp |
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/embindgen.py |
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/templates.py |
||||||
|
${scripts_hdr_parser} |
||||||
|
#(not needed - generated by CMake) ${CMAKE_CURRENT_BINARY_DIR}/headers.txt |
||||||
|
${opencv_hdrs} |
||||||
|
COMMENT "Generate source files for JavaScript bindings" |
||||||
|
) |
||||||
|
|
||||||
|
add_custom_target(gen_opencv_js_source |
||||||
|
# excluded from all: ALL |
||||||
|
DEPENDS ${bindings_cpp} "${OPENCV_DEPHELPER}/gen_opencv_js_source" |
||||||
|
SOURCES |
||||||
|
${JS_SOURCE_DIR}/src/core_bindings.cpp |
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/embindgen.py |
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/templates.py |
||||||
|
) |
Loading…
Reference in new issue