2025-10-03 20:42:04 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
pushd "$(dirname $0)" > /dev/null
|
|
|
|
|
|
|
|
|
|
if [[ ! -d "build" ]];
|
|
|
|
|
then
|
|
|
|
|
mkdir "build"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
pushd "build" > /dev/null
|
|
|
|
|
|
|
|
|
|
release=0
|
|
|
|
|
deps=0
|
2025-10-04 23:46:13 +01:00
|
|
|
assets=0
|
2025-10-03 20:42:04 +01:00
|
|
|
|
|
|
|
|
for a in $*
|
|
|
|
|
do
|
|
|
|
|
let $a=1
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
if [[ ! -d "deps" ]]
|
|
|
|
|
then
|
|
|
|
|
deps=1
|
|
|
|
|
fi
|
|
|
|
|
|
2025-10-04 23:46:13 +01:00
|
|
|
if [[ ! -d "assets" ]]
|
|
|
|
|
then
|
|
|
|
|
assets=1
|
|
|
|
|
fi
|
|
|
|
|
|
2025-10-03 20:42:04 +01:00
|
|
|
if [[ $deps == 1 ]]
|
|
|
|
|
then
|
|
|
|
|
# We don't build SDL3 like on windows, this assumes you have it installed instead. We can't
|
|
|
|
|
# just ship with the version of SDL3 we want because the shared object system is bad
|
|
|
|
|
echo "[Building dependencies]"
|
|
|
|
|
|
|
|
|
|
rm -rf "deps"
|
|
|
|
|
mkdir -p "deps/stb"
|
|
|
|
|
|
|
|
|
|
cp ../thirdparty/stb/*.h deps/stb
|
|
|
|
|
fi
|
|
|
|
|
|
2025-10-04 23:46:13 +01:00
|
|
|
if [[ $assets == 1 ]]
|
|
|
|
|
then
|
|
|
|
|
echo "[Copying assets]"
|
|
|
|
|
|
|
|
|
|
cp -r "../assets" .
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "[Building shaders]"
|
|
|
|
|
|
|
|
|
|
[[ ! -d "assets/shaders" ]] && mkdir "assets/shaders"
|
|
|
|
|
|
|
|
|
|
glslangValidator -o "assets/shaders/basic.vert.spv" --target-env "vulkan1.3" "../code/vulkan/shaders/basic.vert"
|
|
|
|
|
glslangValidator -o "assets/shaders/basic.frag.spv" --target-env "vulkan1.3" "../code/vulkan/shaders/basic.frag"
|
|
|
|
|
|
2025-10-03 20:42:04 +01:00
|
|
|
echo "[Building source]"
|
|
|
|
|
|
2025-10-05 22:35:34 +01:00
|
|
|
COMPILER_OPTS="-Wall -Wno-override-init-side-effects -Wno-missing-braces -Wno-unused-function -Ideps/stb -I../code"
|
2025-10-04 23:46:13 +01:00
|
|
|
LINKER_OPTS="-lSDL3 -lm"
|
2025-10-03 20:42:04 +01:00
|
|
|
|
|
|
|
|
if [[ $release == 1 ]]
|
|
|
|
|
then
|
|
|
|
|
echo "[Release build]"
|
|
|
|
|
gcc -O2 -Werror $COMPILER_OPTS -DLD_RELEASE=1 $(realpath "../code/first.c") -o "ludum" $LINKER_OPTS
|
|
|
|
|
else
|
|
|
|
|
echo "[Debug build]"
|
|
|
|
|
gcc -O0 -g -ggdb $COMPILER_OPTS $(realpath "../code/first.c") -o "ldebug" $LINKER_OPTS
|
|
|
|
|
fi
|