diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..5330154 --- /dev/null +++ b/build.bat @@ -0,0 +1,31 @@ +@echo off + +mkdir build +cd build + +if "%1"=="release" ( + set profile_flags=-DDEBUG_BUILD=0 -O2 +) else ( + set profile_flags=-DDEBUG_BUILD=1 +) + +if not exist "lbaselib.obj" ( + cl -Zi -nologo -I../src/external/lua/src -I../src/external/glad ../src/external/lua/src/lbaselib.c ../src/external/lua/src/lctype.c ../src/external/lua/src/ldo.c ../src/external/lua/src/lgc.c ../src/external/lua/src/liolib.c ../src/external/lua/src/lmem.c ../src/external/lua/src/lopcodes.c ../src/external/lua/src/lstate.c ../src/external/lua/src/ltable.c ../src/external/lua/src/lundump.c ../src/external/lua/src/lzio.c ../src/external/lua/src/lapi.c ../src/external/lua/src/lcode.c ../src/external/lua/src/ldblib.c ../src/external/lua/src/ldump.c ../src/external/lua/src/llex.c ../src/external/lua/src/loadlib.c ../src/external/lua/src/loslib.c ../src/external/lua/src/lstring.c ../src/external/lua/src/ltablib.c ../src/external/lua/src/lutf8lib.c ../src/external/lua/src/lauxlib.c ../src/external/lua/src/lcorolib.c ../src/external/lua/src/ldebug.c ../src/external/lua/src/lfunc.c ../src/external/lua/src/linit.c ../src/external/lua/src/lmathlib.c ../src/external/lua/src/lobject.c ../src/external/lua/src/lparser.c ../src/external/lua/src/lstrlib.c ../src/external/lua/src/ltm.c ../src/external/lua/src/lvm.c ../src/external/glad/glad.c -c +) + +if not exist "metaprogram.exe" ( + cl /WX /W3 /wd4200 /diagnostics:column -FC -Zi -nologo -Fe:metaprogram.exe -I../src ../src/metaprogram/metaprogram.cpp ../src/basic/win32.cpp +) +metaprogram.exe + + +set sdl=../src/external/SDL/win32-static/SDL3-static.lib ../src/external/SDL/win32-static/SDL_uclibc.lib +cl /EHsc- /MD /Zi /FC /nologo /WX /W3 /wd4200 /diagnostics:column %profile_flags% ../src/text_editor/text_editor.cpp ../src/basic/win32.cpp -Fe:te.exe -I../src/external/SDL/include -I../src/external/lua/src -I../src/external/glad -I../src/ lbaselib.obj lctype.obj ldo.obj lgc.obj liolib.obj lmem.obj lopcodes.obj lstate.obj ltable.obj lundump.obj lzio.obj lapi.obj lcode.obj ldblib.obj ldump.obj llex.obj loadlib.obj loslib.obj lstring.obj ltablib.obj lutf8lib.obj lauxlib.obj lcorolib.obj ldebug.obj lfunc.obj linit.obj lmathlib.obj lobject.obj lparser.obj lstrlib.obj ltm.obj lvm.obj glad.obj kernel32.lib gdi32.lib user32.lib Imm32.lib ole32.lib Shell32.lib OleAut32.lib Cfgmgr32.lib Setupapi.lib Advapi32.lib version.lib winmm.lib %sdl% -link /SUBSYSTEM:WINDOWS /NODEFAULTLIB:LIBCMT /NODEFAULTLIB:MSVCRTD + +if "%1"=="release" ( + copy te.exe ..\data\te.exe + echo written ..\data\te.exe +) else ( + copy te.exe ..\data\te_debug.exe + echo written ..\data\te_debug.exe +) diff --git a/build_web.bat b/build_web.bat new file mode 100644 index 0000000..70bc460 --- /dev/null +++ b/build_web.bat @@ -0,0 +1,13 @@ +@echo off + +set incs=-Isrc/external/SDL/include -Isrc/external/lua/src -Isrc/external/glad -Lsrc/external/SDL/build_web -Isrc +set wasmflags=-gsource-map -sALLOW_MEMORY_GROWTH=1 -sMAXIMUM_MEMORY=1gb -msimd128 -sTOTAL_STACK=5MB -sINITIAL_MEMORY=256mb -sUSE_WEBGL2 -sFULL_ES3=1 -sASYNCIFY -sASSERTIONS=2 +set flags=-Wno-writable-strings -nostdlib++ -fno-exceptions -fdiagnostics-absolute-paths -g -DDEBUG_BUILD=1 + +mkdir build +cd build +clang ../src/metaprogram/metaprogram.cpp ../src/basic/win32.cpp -o metaprogram.exe %flags% -I../src +metaprogram.exe +cd .. + +emcc -o text_editor.html --shell-file=data/shell.html %flags% %incs% %wasmflags% -lm -lSDL3 src/text_editor/text_editor.cpp src/basic/wasm.cpp src/external/lua/src/lbaselib.c src/external/lua/src/lctype.c src/external/lua/src/ldo.c src/external/lua/src/lgc.c src/external/lua/src/liolib.c src/external/lua/src/lmem.c src/external/lua/src/lopcodes.c src/external/lua/src/lstate.c src/external/lua/src/ltable.c src/external/lua/src/lundump.c src/external/lua/src/lzio.c src/external/lua/src/lapi.c src/external/lua/src/lcode.c src/external/lua/src/ldblib.c src/external/lua/src/ldump.c src/external/lua/src/llex.c src/external/lua/src/loadlib.c src/external/lua/src/loslib.c src/external/lua/src/lstring.c src/external/lua/src/ltablib.c src/external/lua/src/lutf8lib.c src/external/lua/src/lauxlib.c src/external/lua/src/lcorolib.c src/external/lua/src/ldebug.c src/external/lua/src/lfunc.c src/external/lua/src/linit.c src/external/lua/src/lmathlib.c src/external/lua/src/lobject.c src/external/lua/src/lparser.c src/external/lua/src/lstrlib.c src/external/lua/src/ltm.c src/external/lua/src/lvm.c src/external/glad/glad.c diff --git a/build_web.sh b/build_web.sh new file mode 100644 index 0000000..c9c3118 --- /dev/null +++ b/build_web.sh @@ -0,0 +1,64 @@ +#!/usr/bin/bash + +mkdir build +cd build + +if [ ! -f "metaprogram.exe" ]; then + clang ../src/metaprogram/metaprogram.cpp ../src/basic/unix.cpp -o metaprogram.exe \ + -nostdlib++ -fno-exceptions -fdiagnostics-absolute-paths -g \ + -Wno-writable-strings \ + -I../src +fi +./metaprogram.exe + +emcc -o ../text_editor.html \ + -nostdlib++ -fno-exceptions -fdiagnostics-absolute-paths -g -gsource-map \ + --shell-file=../data/shell.html\ + $profile_flags \ + -Wno-writable-strings \ + -I../src/external/SDL/include \ + -I../src/external/lua/src \ + -I../src/external/glad \ + -I../src/ \ + -L../src/external/SDL/build_web \ + -lm \ + -lSDL3 \ + -s ALLOW_MEMORY_GROWTH=1 -s MAXIMUM_MEMORY=1gb -msimd128 -s TOTAL_STACK=5MB -s INITIAL_MEMORY=256mb \ + ../src/text_editor/text_editor.cpp \ + ../src/basic/unix.cpp \ + ../src/external/lua/src/lbaselib.c \ + ../src/external/lua/src/lctype.c \ + ../src/external/lua/src/ldo.c \ + ../src/external/lua/src/lgc.c \ + ../src/external/lua/src/liolib.c \ + ../src/external/lua/src/lmem.c \ + ../src/external/lua/src/lopcodes.c \ + ../src/external/lua/src/lstate.c \ + ../src/external/lua/src/ltable.c \ + ../src/external/lua/src/lundump.c \ + ../src/external/lua/src/lzio.c \ + ../src/external/lua/src/lapi.c \ + ../src/external/lua/src/lcode.c \ + ../src/external/lua/src/ldblib.c \ + ../src/external/lua/src/ldump.c \ + ../src/external/lua/src/llex.c \ + ../src/external/lua/src/loadlib.c \ + ../src/external/lua/src/loslib.c \ + ../src/external/lua/src/lstring.c \ + ../src/external/lua/src/ltablib.c \ + ../src/external/lua/src/lutf8lib.c \ + ../src/external/lua/src/lauxlib.c \ + ../src/external/lua/src/lcorolib.c \ + ../src/external/lua/src/ldebug.c \ + ../src/external/lua/src/lfunc.c \ + ../src/external/lua/src/linit.c \ + ../src/external/lua/src/lmathlib.c \ + ../src/external/lua/src/lobject.c \ + ../src/external/lua/src/lparser.c \ + ../src/external/lua/src/lstrlib.c \ + ../src/external/lua/src/ltm.c \ + ../src/external/lua/src/lvm.c \ + ../src/external/glad/glad.c \ + + +cd .. \ No newline at end of file diff --git a/data/shell.html b/data/shell.html new file mode 100644 index 0000000..bf2fa9b --- /dev/null +++ b/data/shell.html @@ -0,0 +1,42 @@ + + +
+ + +