Content-Length: 364470 | pFad | http://github.com/opencv/opencv/commit/d53531500addd62fc25c22f14cdeefafc7ea5d89

A9 Merge pull request #27514 from Kumataro:fix27513 · opencv/opencv@d535315 · GitHub
Skip to content

Commit d535315

Browse files
authored
Merge pull request #27514 from Kumataro:fix27513
js: remove deprecated DEMANGLE_SUPPORT option
2 parents c48dad1 + 8d42671 commit d535315

File tree

1 file changed

+47
-1
lines changed

1 file changed

+47
-1
lines changed

modules/js/CMakeLists.txt

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,47 @@ if(NOT EMSCRIPTEN_INCLUDE_DIR OR NOT PYTHON_DEFAULT_AVAILABLE)
3434
ocv_module_disable(js)
3535
endif()
3636

37+
# Get Emscripten version from emscripten/version.h
38+
unset(EMSCRIPTEN_VERSION)
39+
unset(EMSCRIPTEN_VERSION_CONTENTS)
40+
unset(EMSCRIPTEN_VERSION_MAJOR)
41+
unset(EMSCRIPTEN_VERSION_MINOR)
42+
unset(EMSCRIPTEN_VERSION_TINY)
43+
44+
set(EMSCRIPTEN_VERSION_PATH "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h")
45+
if(NOT EXISTS "${EMSCRIPTEN_VERSION_PATH}")
46+
message(STATUS "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h is missing")
47+
else()
48+
file(STRINGS "${EMSCRIPTEN_VERSION_PATH}" EMSCRIPTEN_VERSION_CONTENTS REGEX "^#define[ \t]+__EMSCRIPTEN_[a-z]+__[ \t][0-9]+")
49+
if(NOT EMSCRIPTEN_VERSION_CONTENTS)
50+
message(STATUS "${EMSCRIPTEN_INCLUDE_DIR}/emscripten/version.h is exists, but is not readable")
51+
else()
52+
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_major__[ \t]+([0-9]+)")
53+
set(EMSCRIPTEN_VERSION_MAJOR "${CMAKE_MATCH_1}")
54+
endif()
55+
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_minor__[ \t]+([0-9]+)")
56+
set(EMSCRIPTEN_VERSION_MINOR "${CMAKE_MATCH_1}")
57+
endif()
58+
if(EMSCRIPTEN_VERSION_CONTENTS MATCHES "__EMSCRIPTEN_tiny__[ \t]+([0-9]+)")
59+
set(EMSCRIPTEN_VERSION_TINY "${CMAKE_MATCH_1}")
60+
endif()
61+
62+
# When version(major/minor/tiny) is 0, "if(version)" is failed.
63+
# "if(version GREATER_EQUAL 0)" can compare version as numeric.
64+
if( (EMSCRIPTEN_VERSION_MAJOR GREATER_EQUAL "0") AND
65+
(EMSCRIPTEN_VERSION_MINOR GREATER_EQUAL "0") AND
66+
(EMSCRIPTEN_VERSION_TINY GREATER_EQUAL "0")
67+
)
68+
set(EMSCRIPTEN_VERSION "${EMSCRIPTEN_VERSION_MAJOR}.${EMSCRIPTEN_VERSION_MINOR}.${EMSCRIPTEN_VERSION_TINY}")
69+
message(STATUS "js: Emscripten version = ${EMSCRIPTEN_VERSION}")
70+
else()
71+
message(STATUS "js: Emscripten version is not able to parsed")
72+
message(AUTHOR_WARNING "EMSCRIPTEN_VERSION_CONTENTS = ${EMSCRIPTEN_VERSION_CONTENTS}")
73+
endif()
74+
endif()
75+
endif()
76+
77+
3778
ocv_add_module(js BINDINGS PRIVATE_REQUIRED opencv_js_bindings_generator)
3879

3980
ocv_module_include_directories(${EMSCRIPTEN_INCLUDE_DIR})
@@ -71,7 +112,12 @@ endif()
71112

72113
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s TOTAL_MEMORY=128MB -s WASM_MEM_MAX=1GB -s ALLOW_MEMORY_GROWTH=1")
73114
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s MODULARIZE=1")
74-
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s EXPORT_NAME=\"'cv'\" -s DEMANGLE_SUPPORT=1")
115+
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s EXPORT_NAME=\"'cv'\"")
116+
# See https://github.com/opencv/opencv/issues/27513
117+
# DEMANGLE_SUPPRT is deprecated at Emscripten 3.1.54 and later.
118+
if(NOT EMSCRIPTEN_VERSION OR EMSCRIPTEN_VERSION VERSION_LESS "3.1.54")
119+
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s DEMANGLE_SUPPORT=1")
120+
endif()
75121
set(EMSCRIPTEN_LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS} -s FORCE_FILESYSTEM=1 --use-preload-plugins --bind --post-js ${JS_HELPER} ${COMPILE_FLAGS}")
76122
set_target_properties(${the_module} PROPERTIES LINK_FLAGS "${EMSCRIPTEN_LINK_FLAGS}")
77123

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/opencv/opencv/commit/d53531500addd62fc25c22f14cdeefafc7ea5d89

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy