mirror of
https://github.com/ggerganov/whisper.cpp.git
synced 2025-05-16 22:20:48 +02:00
This commit adds HEAPU8 to the list of exported methods. The motivation for this commit is that currently this is causing an error on Window systems where HEAPU8 in undefined, which results in the following error message in the web console: main.js:1 Uncaught TypeError: Cannot read properties of undefined (reading 'buffer') at __emval_get_property (main.js:1:1363125) at 003a453a:0xc4a47 at 003a453a:0xc51cd at Object.full_default (eval at craftInvokerFunction (main.js:1:1347011), <anonymous>:9:10) at whisper.cpp/:647:42 danbev originally fixed this for whisper.wasm, stream.wasm, and command.stream, but the issue still exists on the other examples which I patch in this code. Resolves: #3059
50 lines
1.1 KiB
CMake
50 lines
1.1 KiB
CMake
#
|
|
# libbench
|
|
#
|
|
|
|
set(TARGET libbench)
|
|
|
|
add_executable(${TARGET}
|
|
emscripten.cpp
|
|
)
|
|
|
|
include(DefaultTargetOptions)
|
|
|
|
target_link_libraries(${TARGET} PRIVATE
|
|
whisper
|
|
)
|
|
|
|
unset(EXTRA_FLAGS)
|
|
|
|
if (WHISPER_WASM_SINGLE_FILE)
|
|
set(EXTRA_FLAGS "-s SINGLE_FILE=1")
|
|
message(STATUS "Embedding WASM inside bench.js")
|
|
|
|
add_custom_command(
|
|
TARGET ${TARGET} POST_BUILD
|
|
COMMAND ${CMAKE_COMMAND} -E copy
|
|
${CMAKE_BINARY_DIR}/bin/libbench.js
|
|
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/bench.wasm/bench.js
|
|
)
|
|
endif()
|
|
|
|
set_target_properties(${TARGET} PROPERTIES LINK_FLAGS " \
|
|
--bind \
|
|
-s USE_PTHREADS=1 \
|
|
-s PTHREAD_POOL_SIZE_STRICT=0 \
|
|
-s INITIAL_MEMORY=2000MB \
|
|
-s TOTAL_MEMORY=2000MB \
|
|
-s FORCE_FILESYSTEM=1 \
|
|
-s EXPORTED_RUNTIME_METHODS=\"['print', 'printErr', 'ccall', 'cwrap', 'HEAPU8']\" \
|
|
${EXTRA_FLAGS} \
|
|
")
|
|
|
|
#
|
|
# bench.wasm
|
|
#
|
|
|
|
set(TARGET bench.wasm)
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/index-tmpl.html ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TARGET}/index.html @ONLY)
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../helpers.js ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TARGET}/helpers.js @ONLY)
|