duckdb / duckdb/extension-template

How to build this as a wasm extension

Open
#89 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
290
Forks
116
PR merge metrics
No merged PRs in 30d

Description

I see that there are wasm_mvp, wasm_threads and wasm_eh targets being built in CI however I get a number of errors trying to build locally

Are there instructions on how to build and test a wasm extension locally?

```
make [wasm_eh|wasm_threads]
...
CMake Error at /opt/homebrew/Cellar/cmake/3.29.6/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/opt/homebrew/Cellar/cmake/3.29.6/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/opt/homebrew/Cellar/cmake/3.29.6/share/cmake/Modules/FindOpenSSL.cmake:686 (find_package_handle_standard_args)
/CMakeLists.txt:9 (find_package)
...
```

```
make wasm_mvp
mkdir -p build/wasm_mvp
emcmake cmake -DDUCKDB_EXTENSION_CONFIGS='/extension_config.cmake' -DWASM_LOADABLE_EXTENSIONS=1 -DBUILD_EXTENSIONS_ONLY=1 -DSKIP_EXTENSIONS="parquet;json" -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Documents/github.com/emscripten-core/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -Bbuild/wasm_mvp -DCMAKE_CXX_FLAGS="" -S "./duckdb/" -DDUCKDB_EXPLICIT_PLATFORM=wasm_mvp -DDUCKDB_CUSTOM_PLATFORM=wasm_mvp
configure: cmake -DDUCKDB_EXTENSION_CONFIGS=/extension_config.cmake -DWASM_LOADABLE_EXTENSIONS=1 -DBUILD_EXTENSIONS_ONLY=1 -DSKIP_EXTENSIONS=parquet;json -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Documents/github.com/emscripten-core/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -Bbuild/wasm_mvp -DCMAKE_CXX_FLAGS= -S ./duckdb/ -DDUCKDB_EXPLICIT_PLATFORM=wasm_mvp -DDUCKDB_CUSTOM_PLATFORM=wasm_mvp -DCMAKE_TOOLCHAIN_FILE=/Documents/github.com/emscripten-core/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/Documents/github.com/emscripten-core/emsdk/node/18.20.3_64bit/bin/node
-- Running vcpkg install
Detecting compiler hash for triplet arm64-osx...
Compiler found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
The following packages will be removed:
openssl is compatible with built-in CMake targets:

find_package(OpenSSL REQUIRED)
target_link_libraries(main PRIVATE OpenSSL::SSL)
target_link_libraries(main PRIVATE OpenSSL::Crypto)

-- Running vcpkg install - done
CMake Error at /opt/homebrew/Cellar/cmake/3.29.6/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
/opt/homebrew/Cellar/cmake/3.29.6/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/opt/homebrew/Cellar/cmake/3.29.6/share/cmake/Modules/FindThreads.cmake:226 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
/vcpkg/scripts/buildsystems/vcpkg.cmake:859 (_find_package)
CMakeLists.txt:25 (find_package)

-- Configuring incomplete, errors occurred!
emcmake: error: 'cmake -DDUCKDB_EXTENSION_CONFIGS=/extension_config.cmake -DWASM_LOADABLE_EXTENSIONS=1 -DBUILD_EXTENSIONS_ONLY=1 -DSKIP_EXTENSIONS=parquet;json -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=/Documents/github.com/emscripten-core/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -Bbuild/wasm_mvp -DCMAKE_CXX_FLAGS= -S ./duckdb/ -DDUCKDB_EXPLICIT_PLATFORM=wasm_mvp -DDUCKDB_CUSTOM_PLATFORM=wasm_mvp -DCMAKE_TOOLCHAIN_FILE=/Documents/github.com/emscripten-core/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/Documents/github.com/emscripten-core/emsdk/node/18.20.3_64bit/bin/node' failed (returned 1)
make: *** [wasm_mvp] Error 1
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.