#!/bin/bash

build_ktx () {
	cmake ktx -B ktx/build \
		-D KTX_FEATURE_LOADTEST_APPS=ON \
		-D KTX_FEATURE_DOC=ON \
		-D CMAKE_EXPORT_COMPILE_COMMANDS=1 \
		-D CMAKE_BUILD_TYPE=Release \
		-D CMAKE_INSTALL_PREFIX=$(realpath vendor) \
		-D CMAKE_CXX_STANDARD=17 \
		-D CMAKE_BUILD_TYPE=Release \
		-D CMAKE_CXX_FLAGS="-msse4.1" \
		-G Ninja
	cmake --build ktx/build --config Release
	cmake --install ktx/build
}

build_app () {
	bear -- clang++ -g -c -Wno-nullability-completeness -DVK_NO_PROTOTYPES -I$VULKAN_SDK/include -Ivendor/include vulkan_profiles/vulkan_profiles.cpp main.cpp
	bear -a -- clang -g -c -DVK_NO_PROTOTYPES -Ivulkan_profiles -I$VULKAN_SDK/include $VULKAN_SDK/include/volk/volk.c wapp/wapp.c
	bear -a -- clang++ -g -DVK_NO_PROTOTYPES -L$VULKAN_SDK/lib -Lvendor/lib -lSDL3 -lglm -ltinyobjloader -lktx -lslang -Wl,-rpath,./vendor/lib -Wl,-rpath,$VULKAN_SDK/lib -o main *.o
}

clean_obj () {
	rm *.o
}

build_ktx
build_app
clean_obj
