mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-05-30 23:18:20 +00:00
[WebNN EP] Fixed build issue with disable_rtti (#19173)
Previously building webnn ep with --disable_rtti will throw unboundTypeError since unbound type names are illegal with RTTI disabled in Embind API, we can fix it by adding a -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0 flag.
This commit is contained in:
parent
81d363045b
commit
07d3aed3aa
3 changed files with 9 additions and 5 deletions
|
|
@ -123,6 +123,11 @@ if (onnxruntime_DISABLE_RTTI)
|
|||
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:/GR->" "$<$<COMPILE_LANGUAGE:CXX>:/we4541>")
|
||||
else()
|
||||
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>")
|
||||
if (onnxruntime_USE_WEBNN)
|
||||
# Avoid unboundTypeError for WebNN EP since unbound type names are illegal with RTTI disabled
|
||||
# in Embind API, relevant issue: https://github.com/emscripten-core/emscripten/issues/7001
|
||||
add_compile_options("$<$<COMPILE_LANGUAGE:CXX>:-DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0>")
|
||||
endif()
|
||||
endif()
|
||||
else()
|
||||
#MSVC RTTI flag /GR is not added to CMAKE_CXX_FLAGS by default. But, anyway VC++2019 treats "/GR" default on.
|
||||
|
|
|
|||
|
|
@ -268,7 +268,10 @@ else()
|
|||
endif()
|
||||
|
||||
if (onnxruntime_USE_WEBNN)
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " --bind -sWASM_BIGINT")
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " --bind -sWASM_BIGINT")
|
||||
if (onnxruntime_DISABLE_RTTI)
|
||||
set_property(TARGET onnxruntime_webassembly APPEND_STRING PROPERTY LINK_FLAGS " -fno-rtti -DEMSCRIPTEN_HAS_UNBOUND_TYPE_NAMES=0")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Set link flag to enable exceptions support, this will override default disabling exception throwing behavior when disable exceptions.
|
||||
|
|
|
|||
|
|
@ -1283,10 +1283,6 @@ def generate_build_tree(
|
|||
if args.use_webnn:
|
||||
if not args.build_wasm:
|
||||
raise BuildError("WebNN is only available for WebAssembly build.")
|
||||
if args.disable_rtti:
|
||||
# Avoid unboundTypeError for WebNN EP since unbound type names are illegal with RTTI disabled
|
||||
# in Embind API, relevant issue: https://github.com/emscripten-core/emscripten/issues/16911
|
||||
raise BuildError("WebNN is not supported with RTTI disabled.")
|
||||
cmake_args += ["-Donnxruntime_USE_WEBNN=ON"]
|
||||
|
||||
if args.use_snpe:
|
||||
|
|
|
|||
Loading…
Reference in a new issue