@@ -44,6 +44,7 @@ set(SIGNET_EVAL_WARN_PCT_2 "90" CACHE STRING
4444 "Default evaluation-tier second warning threshold percentage" )
4545set (SIGNET_COMMERCIAL_LICENSE_HASH "" CACHE STRING
4646 "64-bit FNV-1a hash literal for SIGNET_COMMERCIAL_LICENSE_KEY (example: 0x0123abcd)" )
47+ option (SIGNET_BUILD_WASM "Build WASM target via Emscripten embind" OFF )
4748option (SIGNET_MINIMAL_DEPS "Disable ALL optional external dependencies (for embedded/microcontroller builds)" OFF )
4849
4950if (SIGNET_BUILD_AI_AUDIT)
@@ -474,6 +475,36 @@ if(SIGNET_BUILD_FFI)
474475 message (STATUS "SIGNET_BUILD_FFI=ON: C FFI static library enabled" )
475476endif ()
476477
478+ # ---------------------------------------------------------------------------
479+ # WASM — Emscripten embind target (browser-side Parquet preview)
480+ # ---------------------------------------------------------------------------
481+ if (SIGNET_BUILD_WASM AND EMSCRIPTEN)
482+ add_executable (signet_wasm wasm/signet_wasm.cpp )
483+ target_link_libraries (signet_wasm PRIVATE signet::forge )
484+ target_compile_features (signet_wasm PRIVATE cxx_std_20 )
485+ target_link_options (signet_wasm PRIVATE
486+ --bind
487+ -sWASM=1
488+ -sALLOW_MEMORY_GROWTH=1
489+ -sMODULARIZE=1
490+ -sEXPORT_NAME=SignetForge
491+ -sENVIRONMENT=web
492+ -sFORCE_FILESYSTEM=1
493+ "-sEXPORTED_RUNTIME_METHODS=['FS']"
494+ -fexceptions
495+ )
496+ target_compile_options (signet_wasm PRIVATE -fexceptions )
497+ set_target_properties (signet_wasm PROPERTIES
498+ SUFFIX ".js"
499+ )
500+ install (FILES
501+ ${CMAKE_CURRENT_BINARY_DIR } /signet_wasm.js
502+ ${CMAKE_CURRENT_BINARY_DIR } /signet_wasm.wasm
503+ DESTINATION share/signet_forge/wasm
504+ )
505+ message (STATUS "SIGNET_BUILD_WASM=ON: Emscripten WASM target enabled" )
506+ endif ()
507+
477508# ---------------------------------------------------------------------------
478509# Fuzz harnesses (libFuzzer — requires Clang)
479510# ---------------------------------------------------------------------------
0 commit comments