Upstream for PGE updates.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
olcPixelGameEngine/tools/wasm/pge2wasm.bat

108 lines
2.1 KiB

@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