add_subdirectory(wrapper/uv)

if(NOT EMSCRIPTEN)
  # OpenSSL is unavailable in the Pyodide/Emscripten sysroot, and the only
  # consumers (ymq and the C++ tests) are themselves skipped on wasm.
  add_subdirectory(wrapper/openssl)

  # ymq currently requires std::jthread / threading which Emscripten does not
  # support; skip it until ymq gains a single-threaded / websocket backend for wasm.
  add_subdirectory(ymq)
endif()

add_subdirectory(protocol)

if(NOT EMSCRIPTEN)
  # Server-only data-structure extensions; not used by the WASM client build.
  add_subdirectory(utility)
endif()

if(NOT EMSCRIPTEN)
  add_subdirectory(object_storage)
endif()
