build_win.sh (1014B)
1 #!/bin/sh 2 3 # sets up windows sdk variables, make sure to run `setup_win.sh` beforehand 4 BIN="$(realpath ./opt/bin/x64)" . ./thirdparty/msvc-wine/msvcenv-native.sh 5 6 CC="clang --target=x86_64-pc-windows-msvc" 7 8 WARNINGS="-Wall -Wextra -Wpedantic -Werror" 9 10 CFLAGS="-std=c11 -O0 -g -gcodeview" 11 CPPFLAGS="-DSTARFIELD_DEBUG -Iapi" 12 LDFLAGS="-fuse-ld=lld -Wl,/debug:full,/pdb:" 13 14 EXPORTS=" 15 -Wl,/export:starfield_init 16 -Wl,/export:starfield_update 17 -Wl,/export:starfield_render 18 -Wl,/export:starfield_sample 19 -Wl,/export:starfield_free 20 " 21 22 # TODO: remove -lksuser and -luuid ? 23 WIN_LIBS="-luser32 -lgdi32 -lwinmm -lksuser -luuid" 24 25 set -ex 26 27 mkdir -p bin dep 28 29 $CC -shared -o bin/starfield.dll starfield/starfield.c \ 30 $WARNINGS $CFLAGS $CPPFLAGS $LDFLAGS $EXPORTS 31 32 glslc -mfmt=c shaders/shader.vert -o dep/shader.vert.spv.inc 33 glslc -mfmt=c shaders/shader.frag -o dep/shader.frag.spv.inc 34 35 $CC -static -o bin/win_starfield.exe platform/win_starfield.c -Idep \ 36 $WARNINGS $CFLAGS $CPPFLAGS $LDFLAGS $WIN_LIBS -Wl,/subsystem:windows