From 74ec5500f6fe5eb4cbc154363f363c8f04527ecc Mon Sep 17 00:00:00 2001 From: Javidx9 <25419386+OneLoneCoder@users.noreply.github.com> Date: Sun, 21 Mar 2021 17:58:12 +0000 Subject: [PATCH] Added Basic WASM Utilities --- WASM/basic_template.html | 77 ++++++++++++++++++++++++++++ WASM/pge2wasm.bat | 108 +++++++++++++++++++++++++++++++++++++++ WASM/readme.md | Bin 0 -> 7405 bytes 3 files changed, 185 insertions(+) create mode 100644 WASM/basic_template.html create mode 100644 WASM/pge2wasm.bat create mode 100644 WASM/readme.md diff --git a/WASM/basic_template.html b/WASM/basic_template.html new file mode 100644 index 0000000..1b2f8dd --- /dev/null +++ b/WASM/basic_template.html @@ -0,0 +1,77 @@ + + + + + + + + Emscripten-Generated Code + + + + + + + + + + + + diff --git a/WASM/pge2wasm.bat b/WASM/pge2wasm.bat new file mode 100644 index 0000000..6b77424 --- /dev/null +++ b/WASM/pge2wasm.bat @@ -0,0 +1,108 @@ +@echo off +:: Convenience Utility to build projects using olc::PixelGameEngine, using +:: Emscripten, producing WASM based output. +:: +:: OneLoneCoder.com 2021 - Released under OLC-3 license +:: +:: v1.00: Initial Release + +setlocal enabledelayedexpansion enableextensions + +:: Customize here =========================================== + +:: Location of Emscripten SDK +set EMSDK="e:\pge_ems\emsdk\" + +:: Location of olc::PixelGameEngine header file +set OLCPGE=".\" +set OLCPGE="e:\pge_dev\olcPixelGameEngine_dev\Deploy" + +:: ========================================================== + +set WORKINGDIR=%CD% + +if not exist %EMSDK% ( + echo Error: No Emscripten SDK folder found! + goto :fail +) + +if not exist %OLCPGE% ( + echo Error: Invalid PGE Location! + goto :fail +) + +if "%1"=="build" goto :build +if "%1"=="run" goto :run +if "%1"=="clean" goto :clean +goto :error + +:build + :: Configure path variables + cd %EMSDK% + call emsdk_env.bat + + :: Create working folder + cd %WORKINGDIR% + if not exist ".\WASM" ( + echo Creating .\WASM output folder + mkdir ".\WASM" + ) + + :: Grab all cpp files if no specific file is given + if "%~2"=="" goto :graball + set CPP=%~2 + goto :embuild + +:graball + echo Gathering *.cpp files from + echo %CD% + set CPP= + for %%x in (%CD%\*.cpp) do set CPP=!CPP! %%x + set CPP=%CPP:~1% + +:embuild + +echo %CPP% + if exist "./assets" ( + echo Starting Build with assets... + call em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 %CPP% -o .\WASM\pge.html -I %OLCPGE% --preload-file .\assets + ) else ( + echo Starting Build without assets... + call em++ -std=c++17 -O2 -s ALLOW_MEMORY_GROWTH=1 -s MAX_WEBGL_VERSION=2 -s MIN_WEBGL_VERSION=2 -s USE_LIBPNG=1 %CPP% -o .\WASM\pge.html -I %OLCPGE% + ) + + echo Build Completed + goto :success + +:run + :: Configure path variables + cd %EMSDK% + call emsdk_env.bat + cd %WORKINGDIR% + emrun .\WASM\pge.html + goto :success + +:clean + if exist ".\WASM" ( + rmdir /s /q .\WASM + ) + goto :success + +:error + echo Error: Incorrect Input + goto :fail + +:success + echo Exit With Success + goto :leave + +:fail + echo Exit with Failure + goto :leave + +:leave + exit + + + + diff --git a/WASM/readme.md b/WASM/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..6b0747507a6bf5d310fa36f4cb4c32607ba6842e GIT binary patch literal 7405 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