#!/bin/bash set -eu if [ -x "$(command -v g++)" ]; then cpp_compiler="g++"; c_compiler="gcc"; elif [ -x "$(command -v clang++)" ]; then cpp_compiler="clang++"; c_compiler="clang"; else echo "Unable to find c++ cpp_compiler"; exit -1; fi; if [ -x "$(command -v mold)" ]; then linker_cmd="-fuse-ld=mold"; elif [ -x "$(command -v lld)" ]; then linker_cmd="-fuse-ld=lld"; elif [ -x "$(command -v ld)" ]; then linker_cmd="-fuse-ld=ld"; else echo "Unable to find c/c++ linker"; exit -1; fi; # VMA src="external/vma/vma.cpp" flags="-std=c++20 -D_USE_MATH_DEFINES -Iexternal/vma -c -Wno-everything -static" out="-o" obj="build/vma.o" lib="build/libvma.a" if ! [ -f build/libvma.a ]; then $cpp_compiler $flags $src $out $obj ar rcs $lib $obj rm $obj fi # XXHASH src="external/xxhash/xxhash.c" flags="-std=c99 -Wno-everything -Iexternal/xxhash -c -static" obj="build/xxhash.o" lib="build/libxxhash.a" if ! [ -f build/libxxhash.a ]; then $c_compiler $flags $src $out $obj ar rcs $lib $obj rm $obj fi