diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b23d17d0f..2563ef4ad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -53,7 +53,8 @@ jobs: registry-url: 'https://registry.npmjs.org' - run: npm ci - run: make install-wasi-sdk - - run: make vwasi + - run: make vwasip1 + - run: make vwasip2 - run: | git clone https://github.com/juj/emsdk.git cd emsdk @@ -110,7 +111,8 @@ jobs: registry-url: 'https://registry.npmjs.org' - run: npm ci - run: make install-wasi-sdk - - run: make vwasi + - run: make vwasip1 + - run: make vwasip2 - run: choco install make -y - run: choco install gnuwin32-coreutils.portable -y - uses: actions/setup-python@v5 diff --git a/.npmignore b/.npmignore index 00a9e18b4..9922d52bf 100644 --- a/.npmignore +++ b/.npmignore @@ -11,9 +11,7 @@ !/dist/wasm32-unknown-emscripten/release/*.* !/dist/wasm32-unknown-emscripten/debug/*.* !/dist/wasm32-unknown-emscripten/profile/*.* -!/dist/wasm32-wasi/release/*.* -!/dist/wasm32-wasi/debug/*.* -!/dist/wasm32-wasi/profile/*.* +!/dist/wasm32-wasi*/** !/source/core/*.js /source/core/library_*.js diff --git a/Makefile b/Makefile index fc3e2db91..eea6413a3 100644 --- a/Makefile +++ b/Makefile @@ -16,8 +16,8 @@ simple v32 v64 help: vjs js: cd make-it && make vjs -vwasi: - cd make-it && make vwasi TARGET=wasm32-wasip2 +vwasip1 vwasip2: + cd make-it && make $@ install-wasi-sdk: cd make-it && make install-wasi-sdk diff --git a/make-it/EmMakefile b/make-it/EmMakefile index c8d4eebe7..13d9aad62 100644 --- a/make-it/EmMakefile +++ b/make-it/EmMakefile @@ -9,7 +9,7 @@ MKDIR="mkdir" VIREO_SDK=.. -TARGETS_SUPPORTED=asmjs-unknown-emscripten wasm32-unknown-emscripten wasm32-wasip2 +TARGETS_SUPPORTED=asmjs-unknown-emscripten wasm32-unknown-emscripten wasm32-wasip1 wasm32-wasip2 TARGET=wasm32-unknown-emscripten ifeq ($(filter $(TARGET), $(TARGETS_SUPPORTED)),) @@ -88,7 +88,7 @@ else endif endif WASI_SDK_PATH=$(VIREO_SDK)/wasi-sdk-${WASI_VERSION_FULL}-${WASI_SDK_TARGET} -WASI_CC=${WASI_SDK_PATH}/bin/clang++ --sysroot=${WASI_SDK_PATH}/share/wasi-sysroot --target=wasm32-wasip2 +WASI_CC=${WASI_SDK_PATH}/bin/clang++ --sysroot=${WASI_SDK_PATH}/share/wasi-sysroot --target=${TARGET} # release config EM_OPTFLAG = -O3 @@ -121,7 +121,7 @@ ifeq ($(TARGET), wasm32-unknown-emscripten) MAINOBJ = endif -ifeq ($(TARGET), wasm32-wasip2) +ifeq ($(filter wasm32-wasi, $(TARGET)),) EMCC=$(WASI_CC) TARGET_FLAG = -DkVireoOS_wasi -DVIREO_STDIO -DVIREO_FILESYSTEM -DVIREO_FILESYSTEM_DIRLIST MAINOBJ = $(OBJS)/main.bc @@ -134,7 +134,7 @@ endif # NO_DYNAMIC_EXECUTION=1 Allows Vireo to be used in CSP environments where eval() is forbidden: https://github.com/kripken/emscripten/blob/master/src/settings.js#L563 EM_OPT = $(EM_OPTFLAGS) $(TARGET_FLAG) -std=c++14 -fno-exceptions -Werror --memory-init-file 0 -s NO_DYNAMIC_EXECUTION=1 -s MODULARIZE=1 -s EXPORT_NAME=VireoCreateCoreModule -s EXPORT_ES6=1 -s USE_ES6_IMPORT_META=0 --minify 0 -s NO_FILESYSTEM=1 -s ABORTING_MALLOC=0 WASI_OPT = $(EM_OPTFLAGS) $(TARGET_FLAG) -std=c++14 -fno-exceptions -Werror -ifeq ($(TARGET), wasm32-wasip2) +ifeq ($(filter wasm32-wasi, $(TARGET)),) EM_OPT=$(WASI_OPT) endif EMFLAGS = -I$(INCDIR) $(EM_OPT) diff --git a/make-it/Makefile b/make-it/Makefile index f4d08ab91..82e447685 100644 --- a/make-it/Makefile +++ b/make-it/Makefile @@ -196,8 +196,11 @@ lARMv5: vjs: emmake make -f EmMakefile vjs -vwasi: - make -f EmMakefile vwasi +vwasip1: + make -f EmMakefile TARGET=wasm32-wasip1 vwasi + +vwasip2: + make -f EmMakefile TARGET=wasm32-wasip2 vwasi install-wasi-sdk: make -f EmMakefile install-wasi-sdk diff --git a/test-it/wasi.js b/test-it/wasi.js index 269d2b67d..748dc5ac1 100644 --- a/test-it/wasi.js +++ b/test-it/wasi.js @@ -5,7 +5,7 @@ const path = require('node:path'); const {argv} = require('node:process'); const wasm = await WebAssembly.compile( - await readFile(path.join(__dirname, '../dist/wasm32-wasi/release/vireo.wasm')) + await readFile(path.join(__dirname, '../dist/wasm32-wasip1/release/vireo.wasm')) ); const wasi = new WASI({ args: argv.slice(1),