mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-09-22 17:16:19 -07:00
feat(dictionary): add Hachidori backend support
- Add backend selection, setup gating, Anki integration, and external host support - Add launcher flags, documentation, packaging, and focused tests - Open on-demand overlay modals on the first attempt
This commit is contained in:
+52
@@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
# Builds the threaded OPFS runtime, the threaded IDBFS runtime for hosts without
|
||||
# OPFS access handles, and the single-thread IDBFS fallback.
|
||||
set -e
|
||||
|
||||
WASM_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||
REPO_ROOT=$(CDPATH= cd -- "$WASM_DIR/.." && pwd)
|
||||
THREADED_BUILD_DIR="${BUILD_DIR:-$WASM_DIR/build}"
|
||||
THREADED_IDBFS_BUILD_DIR="${THREADED_IDBFS_BUILD_DIR:-${THREADED_BUILD_DIR}-idbfs}"
|
||||
FALLBACK_BUILD_DIR="${FALLBACK_BUILD_DIR:-${THREADED_BUILD_DIR}-fallback}"
|
||||
VENDOR_DIR="$REPO_ROOT/extension/vendor"
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. "$WASM_DIR/env.sh"
|
||||
|
||||
build_runtime() {
|
||||
build_dir=$1
|
||||
pthreads=$2
|
||||
wasmfs=$3
|
||||
emcmake cmake -S "$WASM_DIR" -B "$build_dir" \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DHACHIDORI_PTHREADS="$pthreads" \
|
||||
-DHACHIDORI_WASMFS="$wasmfs"
|
||||
cmake --build "$build_dir" --parallel "$(nproc 2>/dev/null || printf '%s\n' 4)"
|
||||
}
|
||||
|
||||
build_runtime "$THREADED_BUILD_DIR" ON ON
|
||||
build_runtime "$THREADED_IDBFS_BUILD_DIR" ON OFF
|
||||
build_runtime "$FALLBACK_BUILD_DIR" OFF ON
|
||||
|
||||
mkdir -p "$VENDOR_DIR"
|
||||
cp "$THREADED_BUILD_DIR/hoshidicts-threaded.mjs" "$VENDOR_DIR/hoshidicts-threaded.mjs"
|
||||
cp "$THREADED_BUILD_DIR/hoshidicts-threaded.wasm" "$VENDOR_DIR/hoshidicts-threaded.wasm"
|
||||
cp "$THREADED_IDBFS_BUILD_DIR/hoshidicts-threaded-idbfs.mjs" "$VENDOR_DIR/hoshidicts-threaded-idbfs.mjs"
|
||||
cp "$THREADED_IDBFS_BUILD_DIR/hoshidicts-threaded-idbfs.wasm" "$VENDOR_DIR/hoshidicts-threaded-idbfs.wasm"
|
||||
cp "$FALLBACK_BUILD_DIR/hoshidicts.mjs" "$VENDOR_DIR/hoshidicts.mjs"
|
||||
cp "$FALLBACK_BUILD_DIR/hoshidicts.wasm" "$VENDOR_DIR/hoshidicts.wasm"
|
||||
chmod 644 \
|
||||
"$VENDOR_DIR/hoshidicts-threaded.mjs" \
|
||||
"$VENDOR_DIR/hoshidicts-threaded.wasm" \
|
||||
"$VENDOR_DIR/hoshidicts-threaded-idbfs.mjs" \
|
||||
"$VENDOR_DIR/hoshidicts-threaded-idbfs.wasm" \
|
||||
"$VENDOR_DIR/hoshidicts.mjs" \
|
||||
"$VENDOR_DIR/hoshidicts.wasm"
|
||||
|
||||
ls -l \
|
||||
"$VENDOR_DIR/hoshidicts-threaded.mjs" \
|
||||
"$VENDOR_DIR/hoshidicts-threaded.wasm" \
|
||||
"$VENDOR_DIR/hoshidicts-threaded-idbfs.mjs" \
|
||||
"$VENDOR_DIR/hoshidicts-threaded-idbfs.wasm" \
|
||||
"$VENDOR_DIR/hoshidicts.mjs" \
|
||||
"$VENDOR_DIR/hoshidicts.wasm"
|
||||
Reference in New Issue
Block a user