50 lines
1.0 KiB
Bash
Executable File
50 lines
1.0 KiB
Bash
Executable File
#/bin/bash
|
|
|
|
set -eu
|
|
script_path="$(realpath $0)"
|
|
root="$(dirname $script_path)"
|
|
|
|
pushd "$(dirname $0)"
|
|
|
|
compiler=${CC:-g++}
|
|
|
|
src_files=(
|
|
src/main.cxx
|
|
src/util/random.cxx
|
|
src/layout/layout_tree.cxx
|
|
src/rendering.cxx
|
|
src/rendering_context.cxx
|
|
)
|
|
|
|
rapidxml_version="1.13"
|
|
rapidxml_flags="-I$root/vendor/rapidxml-$rapidxml_version"
|
|
|
|
skia_include="$root/vendor/skia"
|
|
skia_link="-L$root/vendor/skia/out/Static -lskia"
|
|
skia_flags="$skia_link -I$skia_include -DSK_GL -DSK_GANESH"
|
|
|
|
glfw_flags=$(pkg-config --cflags --libs glfw3)
|
|
gl_flags=$(pkg-config --cflags --libs gl)
|
|
|
|
misc_lib_flags=$(pkg-config --cflags --libs libwebp libwebpmux libwebpdemux libpng libjpeg fontconfig)
|
|
|
|
common_opts="$rapidxml_flags $skia_flags $glfw_flags $gl_flags -I$root/src -Wall --std=c++20 -lz $misc_lib_flags"
|
|
debug_opts="--debug -g --optimize -DDEBUG $common_opts"
|
|
|
|
mkdir -p build
|
|
pushd build >> /dev/null
|
|
|
|
all_src=""
|
|
for p in "${src_files[@]}"; do
|
|
all_src+=" ../${p}"
|
|
done
|
|
|
|
compile="$compiler $all_src -o clef $debug_opts"
|
|
|
|
echo $compile
|
|
$compile
|
|
|
|
popd >> /dev/null
|
|
popd >> /dev/null
|
|
|