From: stephan Date: Wed, 6 Mar 2024 08:45:52 +0000 (+0000) Subject: Wasm build tweaks to attempt to get the node.js-for-node.js build to use Emscripten... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fwasm-nodefs;p=thirdparty%2Fsqlite.git Wasm build tweaks to attempt to get the node.js-for-node.js build to use Emscripten's nodefs filesystem driver for persistent storage. This is completely untested - validating it requires a nodeist. FossilOrigin-Name: 0bcbde7c54f67451417d24678b776ad1b4e92990aa72cc3850f6e369011f4538 --- diff --git a/ext/wasm/GNUmakefile b/ext/wasm/GNUmakefile index 098a4330b0..763837d0d6 100644 --- a/ext/wasm/GNUmakefile +++ b/ext/wasm/GNUmakefile @@ -82,7 +82,8 @@ JS_BUILD_NAMES := sqlite3 sqlite3-wasmfs # # - node = for use by node.js for node.js, as opposed to by node.js on # behalf o browser-side code (use bundler-friendly for that). Note -# that persistent storage (OPFS) is not available in these builds. +# that persistent storage (OPFS, kvvfs) is not available in these +# builds. # JS_BUILD_MODES := vanilla esm bunder-friendly node @@ -738,11 +739,12 @@ pre-post-jses.$(1)-$(2).deps := $$(pre-post-jses.deps.common) \ $$(post-js.js.$(1)-$(2)) $$(extern-post-js.js.$(1)-$(2)) $$(pre-js.js.$(1)-$(2)): $$(pre-js.js.$(1)-$(2).intermediary) $$(MAKEFILE) cp $$(pre-js.js.$(1)-$(2).intermediary) $$@ - @if [ sqlite3-wasmfs = $(1) ]; then \ - echo "delete Module[xNameOfInstantiateWasm] /*for WASMFS build*/;"; \ - elif [ sqlite3 != $(1) ]; then \ - echo "Module[xNameOfInstantiateWasm].uri = '$(1).wasm';"; \ - fi >> $$@ + @case $(1) in \ + sqlite3) ;; \ + sqlite3-wasmfs) \ + echo "delete Module[xNameOfInstantiateWasm] /*for WASMFS and node builds*/;" ;; \ + *) echo "Module[xNameOfInstantiateWasm].uri = '$(1).wasm';" ;; \ + esac >> $$@ pre-post-$(1)-$(2).deps := \ $$(pre-post-jses.$(1)-$(2).deps) \ $$(dir.tmp)/pre-js.$(1)-$(2).js @@ -825,7 +827,7 @@ pre-post-jses.deps.common := $(extern-pre-js.js) $(sqlite3-license-version.js) # $4 = resulting sqlite-api JS/MJS file # $5 = resulting JS/MJS file # $6 = -D... flags for $(bin.c-pp) -# $7 = emcc -sXYZ flags (CURRENTLY UNUSED - was factored out) +# $7 = optional additional flags for emcc # # Maintenance reminder: be careful not to introduce spaces around args # ($1, $2), otherwise string concatenation will malfunction. @@ -892,7 +894,11 @@ $(eval $(call SETUP_LIB_BUILD_MODE,sqlite3,bundler-friendly,1,\ $(c-pp.D.sqlite3-esm) -Dtarget=es6-bundler-friendly)) $(eval $(call SETUP_LIB_BUILD_MODE,sqlite3,node,1,\ $(sqlite3-api-node.mjs),$(sqlite3-node.mjs),\ - $(c-pp.D.sqlite3-bundler-friendly) -Dtarget=node)) + $(c-pp.D.sqlite3-bundler-friendly) -Dtarget=node,-lnodefs.js)) +# ^^^^ reminder to self: using -lnodefs.js affects the resulting JS but +# not the .wasm file, so that build can/should use the canonical +# wasm file. +# # The various -D... values used by *.c-pp.js include: # # -Dtarget=es6-module: for all ESM module builds diff --git a/manifest b/manifest index 1364d73542..59e5e5548d 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Remove\scode\sthat\sadded\sa\sP4\sparameter\sto\sthe\sOP_Variable\sopcode.\sThis\sis\sno\slonger\srequired. -D 2024-03-05T18:41:03.600 +C Wasm\sbuild\stweaks\sto\sattempt\sto\sget\sthe\snode.js-for-node.js\sbuild\sto\suse\sEmscripten's\snodefs\sfilesystem\sdriver\sfor\spersistent\sstorage.\sThis\sis\scompletely\suntested\s-\svalidating\sit\srequires\sa\snodeist. +D 2024-03-06T08:45:52.179 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -587,7 +587,7 @@ F ext/userauth/sqlite3userauth.h 7f3ea8c4686db8e40b0a0e7a8e0b00fac13aa7a3 F ext/userauth/user-auth.txt ca7e9ee82ca4e1c1744295f8184dd70edfae1992865d26c64303f539eb6c084c F ext/userauth/userauth.c 7f00cded7dcaa5d47f54539b290a43d2e59f4b1eb5f447545fa865f002fc80cb F ext/wasm/EXPORTED_FUNCTIONS.fiddle.in 27450c8b8c70875a260aca55435ec927068b34cef801a96205adb81bdcefc65c -F ext/wasm/GNUmakefile 92e929315c3f1e0ea389fc9666b87a67a61fa1ecbe37e44c5ad226bda3bc6abe +F ext/wasm/GNUmakefile d71fa280bf85d8ff7e2200003ebdf729a754f93cdf6e04d7dad48848952c162f F ext/wasm/README-dist.txt 6382cb9548076fca472fb3330bbdba3a55c1ea0b180ff9253f084f07ff383576 F ext/wasm/README.md a8a2962c3aebdf8d2104a9102e336c5554e78fc6072746e5daf9c61514e7d193 F ext/wasm/SQLTester/GNUmakefile e0794f676d55819951bbfae45cc5e8d7818dc460492dc317ce7f0d2eca15caff @@ -2176,8 +2176,11 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 8290646792bc5411112b0c01dc5ac0837743056a7679725ee2edefef2e10d146 -R 1ae68caeb21ed926e0c7d42963259d28 -U dan -Z 4bf196184c1c27ebc7d6a427ff362e10 +P dd5977c9a8a418be3fbd646d74933996381099a9263a02eb4a990f0084463dc1 +R 33326cf07abe13f18bad62155ebaba19 +T *branch * wasm-nodefs +T *sym-wasm-nodefs * +T -sym-trunk * Cancelled\sby\sbranch. +U stephan +Z 60b88e8d8d2858ddd9f12841b30e5f75 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 663d96d614..56174adbf5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -dd5977c9a8a418be3fbd646d74933996381099a9263a02eb4a990f0084463dc1 \ No newline at end of file +0bcbde7c54f67451417d24678b776ad1b4e92990aa72cc3850f6e369011f4538 \ No newline at end of file