mirror of
https://github.com/opencv/opencv.git
synced 2026-07-21 19:33:03 +04:00
Merge pull request #27514 from Kumataro:fix27513
js: remove deprecated DEMANGLE_SUPPORT option
This commit is contained in:
@@ -34,6 +34,47 @@ if(NOT EMSCRIPTEN_INCLUDE_DIR OR NOT PYTHON_DEFAULT_AVAILABLE)
|
||||
ocv_module_disable(js)
|
||||
endif()
|
||||
|
||||
# Get Emscripten version from emscripten/version.h
|
||||
unset(EMSCRIPTEN_VERSION)
|
||||
unset(EMSCRIPTEN_VERSION_CONTENTS)
|
||||
unset(EMSCRIPTEN_VERSION_MAJOR)
|
||||
unset(EMSCRIPTEN_VERSION_MINOR)
|
||||
unset(EMSCRIPTEN_VERSION_TINY)
|
||||
|
||||
set(EMSCRIPTEN_VERSION_PATH "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h")
|
||||
if(NOT EXISTS "${EMSCRIPTEN_VERSION_PATH}")
|
||||
message(STATUS "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h is missing")
|
||||
else()
|
||||
file(STRINGS "${EMSCRIPTEN_VERSION_PATH}" EMSCRIPTEN_VERSION_CONTENTS REGEX "^#define[ \t]+__EMSCRIPTEN_[a-z]+__[ \t][0-9]+")
|
||||
if(NOT EMSCRIPTEN_VERSION_CONTENTS)
|
||||
message(STATUS "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h is exists, but is not readable")
|
||||
else()
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_major__[ \t]+([0-9]+)")
|
||||
set(EMSCRIPTEN_VERSION_MAJOR "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_minor__[ \t]+([0-9]+)")
|
||||
set(EMSCRIPTEN_VERSION_MINOR "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_tiny__[ \t]+([0-9]+)")
|
||||
set(EMSCRIPTEN_VERSION_TINY "${CMAKE_MATCH_1}")
|
||||
endif()
|
||||
|
||||
# When version(major/minor/tiny) is 0, "if(version)" is failed.
|
||||
# "if(version GREATER_EQUAL 0)" can compare version as numeric.
|
||||
if( (EMSCRIPTEN_VERSION_MAJOR GREATER_EQUAL "0") AND
|
||||
(EMSCRIPTEN_VERSION_MINOR GREATER_EQUAL "0") AND
|
||||
(EMSCRIPTEN_VERSION_TINY GREATER_EQUAL "0")
|
||||
)
|
||||
set(EMSCRIPTEN_VERSION "${EMSCRIPTEN_VERSION_MAJOR}.${EMSCRIPTEN_VERSION_MINOR}.${EMSCRIPTEN_VERSION_TINY}")
|
||||
message(STATUS "js: Emscripten version = ${EMSCRIPTEN_VERSION}")
|
||||
else()
|
||||
message(STATUS "js: Emscripten version is not able to parsed")
|
||||
message(AUTHOR_WARNING "EMSCRIPTEN_VERSION_CONTENTS = ${EMSCRIPTEN_VERSION_CONTENTS}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
ocv_add_module(js BINDINGS PRIVATE_REQUIRED opencv_js_bindings_generator)
|
||||
|
||||
ocv_module_include_directories(${EMSCRIPTEN_INCLUDE_DIR})
|
||||
@@ -71,7 +112,12 @@ endif()
|
||||
|
||||
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s TOTAL_MEMORY=128MB -s WASM_MEM_MAX=1GB -s ALLOW_MEMORY_GROWTH=1")
|
||||
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s MODULARIZE=1")
|
||||
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s EXPORT_NAME=\"'cv'\" -s DEMANGLE_SUPPORT=1")
|
||||
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s EXPORT_NAME=\"'cv'\"")
|
||||
# See https://github.com/opencv/opencv/issues/27513
|
||||
# DEMANGLE_SUPPRT is deprecated at Emscripten 3.1.54 and later.
|
||||
if(NOT EMSCRIPTEN_VERSION OR EMSCRIPTEN_VERSION VERSION_LESS "3.1.54")
|
||||
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s DEMANGLE_SUPPORT=1")
|
||||
endif()
|
||||
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s FORCE_FILESYSTEM=1 --use-preload-plugins --bind --post-js ${JS_HELPER} ${COMPILE_FLAGS}")
|
||||
set_target_properties(${the_module} PROPERTIES LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user