50 lines
1.1 KiB
Bash
Executable File
50 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eu
|
|
|
|
# make sure the cwd is where the script is.
|
|
pushd "$(dirname "$0")" >> /dev/null
|
|
|
|
CC=gcc
|
|
AR=ar
|
|
|
|
src=(
|
|
src/main.c
|
|
)
|
|
|
|
cimgui_flags="-L./vendor/cimgui -lcimgui -I./vendor/cimgui"
|
|
sokol_flags="-L./build -lsokol -I./vendor/sokol -I./vendor/sokol/util"
|
|
compile_flags="-o ./build/imdraw -framework QuartzCore -framework Cocoa -framework MetalKit -framework Metal"
|
|
|
|
mkdir -p build/
|
|
|
|
# compile cimgui into a static library
|
|
if [ ! -f vendor/cimgui/libcimgui.a ]; then
|
|
echo "Compiling cimgui..."
|
|
pushd vendor/cimgui >> /dev/null
|
|
make static
|
|
popd >> /dev/null
|
|
echo "cimgui compiled!"
|
|
else
|
|
echo "libcimgui exists at vendor/cimgui, skipping compilation!"
|
|
fi
|
|
|
|
# compile sokol into a static library
|
|
if [ ! -f build/libsokol.a ]; then
|
|
echo "Compiling Sokol..."
|
|
$CC -c -x objective-c lib/sokol.c -o build/sokol.o $cimgui_flags $sokol_flags
|
|
$AR rcs build/libsokol.a build/sokol.o
|
|
rm build/sokol.o
|
|
echo "Sokol compiled!"
|
|
else
|
|
echo "libsokol.a exists, skipping compilation!"
|
|
fi
|
|
|
|
compile_cmd="$CC $src $compile_flags $cimgui_flags $sokol_flags"
|
|
|
|
echo $compile_cmd
|
|
$compile_cmd
|
|
|
|
popd >> /dev/null
|
|
|