starfield

starfield.git
git clone git://git.lenczewski.org/starfield.git
Log | Files | Refs | Submodules | README | LICENSE

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