added 'onyx run' to windows (using wasmer)
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 29 Oct 2021 03:18:56 +0000 (22:18 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Fri, 29 Oct 2021 03:18:56 +0000 (22:18 -0500)
.github/workflows/windows-build.yml
build.bat

index eb476574db24b7f3a7593c90516ff61bb5c22f62..d6aa4d0de9874e58b509be743735d20240c1dfca 100644 (file)
@@ -30,7 +30,7 @@ jobs:
 
       # Runs a single command using the runners shell
       - name: Build a release build
-        run: cmd.exe /c 'build.bat 1'
+        run: cmd.exe /c 'build.bat'
 
       - name: Upload executable file
         uses: actions/upload-artifact@v2
index cea0527dcdc418980162b35c5f4dfae83b9c626f..2b7dcebdeb5092e2af69670d408c153591b4dfce 100644 (file)
--- a/build.bat
+++ b/build.bat
@@ -3,14 +3,24 @@
 set SOURCE_FILES=src/onyx.c src/astnodes.c src/builtins.c src/checker.c src/clone.c src/doc.c src/entities.c src/errors.c src/lex.c src/parser.c src/symres.c src/types.c src/utils.c src/wasm_emit.c
 
 if "%1" == "1" (
-    set FLAGS=/Od /MDd /Z7
+    set FLAGS=/Od /MTd /Z7
 ) else (
     set FLAGS=/O2 /MT /Z7
 )
 
+if "%ONYX_ENABLE_RUN_WITH_WASMER%" == "1" (
+    for /f "delims=" %%i in ('wasmer config --includedir') do set WASMER_INCLUDE_DIR=%%i
+    for /f "delims=" %%i in ('wasmer config --libdir')     do set WASMER_LIBRARY_DIR=%%i
+
+    set SOURCE_FILES=%SOURCE_FILES% src/wasm_runtime.c
+
+    set LINK_OPTIONS="%WASMER_LIBRARY_DIR%\wasmer.lib" ws2_32.lib Advapi32.lib userenv.lib bcrypt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib
+    set FLAGS=%FLAGS% /I"%WASMER_INCLUDE_DIR%" /DENABLE_RUN_WITH_WASMER=1
+)
+
 del *.pdb > NUL 2> NUL
 del *.ilk > NUL 2> NUL
 
-cl.exe %FLAGS% /I include /std:c17 /Tc %SOURCE_FILES% /link /DEBUG /OUT:onyx.exe /incremental:no /opt:ref /subsystem:console
+cl.exe %FLAGS% /Iinclude /std:c17 /Tc %SOURCE_FILES% /link %LINK_OPTIONS% /DEBUG /OUT:onyx.exe /incremental:no /opt:ref /subsystem:console
 
 del *.obj > NUL 2> NUL