Initial RHI implementation
This commit is contained in:
@@ -5,28 +5,44 @@ default: build
|
||||
|
||||
CC := "clang"
|
||||
CXX := "clang++"
|
||||
VK_FLAGS := "-DVK_NO_PROTOTYPES -I$VULKAN_SDK/include -I$VULKAN_SDK/include/vma"
|
||||
BUILDDIR := "build"
|
||||
|
||||
# Build the project (object files only — no entry point yet)
|
||||
# Resolve VULKAN_SDK once via backtick
|
||||
VK_SDK := `echo $VULKAN_SDK`
|
||||
VENDOR_LIB := "/home/abdelrahman/Sources/programming/how-to-vulkan/vendor/lib"
|
||||
|
||||
VK_FLAGS := "-DVK_NO_PROTOTYPES -I" + VK_SDK + "/include -I" + VK_SDK + "/include/vma"
|
||||
APP_INC := "-I" + VK_SDK + "/include -I" + VK_SDK + "/include/vma -I" + VK_SDK + "/include/slang -I/home/abdelrahman/Sources/programming/how-to-vulkan/vendor/include -Isrc"
|
||||
|
||||
# Build all objects, then link
|
||||
build:
|
||||
mkdir -p {{BUILDDIR}}
|
||||
{{CXX}} -g -c -Wno-nullability-completeness {{VK_FLAGS}} \
|
||||
bear -- {{CXX}} -g -c -Wno-nullability-completeness {{VK_FLAGS}} \
|
||||
src/prism/rhi/vulkan/profiles/vulkan_profiles.cpp \
|
||||
-o {{BUILDDIR}}/vulkan_profiles.o
|
||||
{{CXX}} -g -c -Wno-nullability-completeness {{VK_FLAGS}} \
|
||||
bear -a -- {{CXX}} -g -c -Wno-nullability-completeness {{VK_FLAGS}} \
|
||||
src/prism/rhi/vulkan/pr_rhi_vk_vma.cpp \
|
||||
-o {{BUILDDIR}}/pr_rhi_vk_vma.o
|
||||
{{CC}} -g -c {{VK_FLAGS}} $VULKAN_SDK/include/volk/volk.c -o {{BUILDDIR}}/volk.o
|
||||
{{CC}} -g -c {{VK_FLAGS}} src/prism/rhi/vulkan/pr_rhi_vk.c -o {{BUILDDIR}}/pr_rhi_vk.o
|
||||
{{CC}} -g -c src/wapp/wapp.c -o {{BUILDDIR}}/wapp.o
|
||||
@echo "--- build done (objects in {{BUILDDIR}}/) ---"
|
||||
bear -a -- {{CC}} -g -c {{VK_FLAGS}} {{VK_SDK}}/include/volk/volk.c -o {{BUILDDIR}}/volk.o
|
||||
bear -a -- {{CC}} -g -c {{VK_FLAGS}} src/prism/rhi/vulkan/pr_rhi_vk.c -o {{BUILDDIR}}/pr_rhi_vk.o
|
||||
bear -a -- {{CC}} -g -c src/wapp/wapp.c -o {{BUILDDIR}}/wapp.o
|
||||
bear -a -- {{CXX}} -g -c -Wno-nullability-completeness -DVK_NO_PROTOTYPES \
|
||||
{{APP_INC}} \
|
||||
src/main.cpp \
|
||||
-o {{BUILDDIR}}/main.o
|
||||
bear -a -- {{CXX}} -g -DVK_NO_PROTOTYPES \
|
||||
-L{{VK_SDK}}/lib -L{{VENDOR_LIB}} \
|
||||
build/*.o \
|
||||
-lSDL3 -lglm -ltinyobjloader -lktx -lslang -lvulkan \
|
||||
-Wl,-rpath,{{VENDOR_LIB}} -Wl,-rpath,{{VK_SDK}}/lib \
|
||||
-o {{BUILDDIR}}/prism
|
||||
@echo "--- build done: {{BUILDDIR}}/prism ---"
|
||||
|
||||
# Clean object files
|
||||
# Clean
|
||||
clean:
|
||||
rm -rf {{BUILDDIR}}
|
||||
|
||||
# Run linter / typecheck
|
||||
# Run linter
|
||||
lint:
|
||||
@echo "TODO: implement linter"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user