Add shader compilation to Makefile
This commit is contained in:
1 parent
d35713efdb
commit
9d76e874d4
2 files changed
+10
-3
No files matched your search
@@ -2,4 +2,3 @@
|
|||||||
.build
|
.build
|
||||||
vendor/vulkan
|
vendor/vulkan
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
*.spv
|
|
||||||
@@ -5,6 +5,7 @@ MACHINE = $(shell uname -m)
|
|||||||
PLATFORM = $(KERNEL)_$(MACHINE)
|
PLATFORM = $(KERNEL)_$(MACHINE)
|
||||||
CC = clang
|
CC = clang
|
||||||
CXX = clang++
|
CXX = clang++
|
||||||
|
SLANGC = slangc
|
||||||
C_SRCS = src/main.c
|
C_SRCS = src/main.c
|
||||||
C_UNITY_SRCS = src/wapp/wapp.c \
|
C_UNITY_SRCS = src/wapp/wapp.c \
|
||||||
src/config/config_src.c \
|
src/config/config_src.c \
|
||||||
@@ -17,11 +18,14 @@ LDFLAGS = -g -DWP_DEBUG_ASSERT
|
|||||||
LDLIBS = -lm
|
LDLIBS = -lm
|
||||||
WND_BKND = SDL
|
WND_BKND = SDL
|
||||||
GPU_BKND = Vulkan
|
GPU_BKND = Vulkan
|
||||||
|
SLANGC_FLAGS = -entry vertMain -entry fragMain
|
||||||
|
SHADER_SRC = src/shaders/shader.slang
|
||||||
BUILD_ROOT = .build
|
BUILD_ROOT = .build
|
||||||
BUILDDIR = $(BUILD_ROOT)/$(PLATFORM)
|
BUILDDIR = $(BUILD_ROOT)/$(PLATFORM)
|
||||||
OBJDIR = $(BUILDDIR)/obj
|
OBJDIR = $(BUILDDIR)/obj
|
||||||
COBJDIR = $(OBJDIR)/c
|
COBJDIR = $(OBJDIR)/c
|
||||||
CXXOBJDIR = $(OBJDIR)/cxx
|
CXXOBJDIR = $(OBJDIR)/cxx
|
||||||
|
SHADER_OUTDIR = $(BUILDDIR)/shaders
|
||||||
|
|
||||||
ifeq ($(WND_BKND), SDL)
|
ifeq ($(WND_BKND), SDL)
|
||||||
CFLAGS += -DUSE_SDL_WINDOW_BACKEND
|
CFLAGS += -DUSE_SDL_WINDOW_BACKEND
|
||||||
@@ -41,12 +45,12 @@ CXX_UNITY_OBJS = $(patsubst %.cpp, $(CXXOBJDIR)/%.o, $(CXX_UNITY_SRCS))
|
|||||||
OBJS = $(COBJS) $(C_UNITY_OBJS) $(CXX_UNITY_OBJS)
|
OBJS = $(COBJS) $(C_UNITY_OBJS) $(CXX_UNITY_OBJS)
|
||||||
OUT_NAME = main
|
OUT_NAME = main
|
||||||
OUT = $(BUILDDIR)/$(OUT_NAME)
|
OUT = $(BUILDDIR)/$(OUT_NAME)
|
||||||
|
SHADER_OUT = $(SHADER_OUTDIR)/shader.spv
|
||||||
|
|
||||||
build: $(OUT)
|
build: $(OUT) $(SHADER_OUT)
|
||||||
|
|
||||||
$(OUT): $(OBJS)
|
$(OUT): $(OBJS)
|
||||||
$(CXX) $(LDFLAGS) -o "$@" $^ $(LDLIBS)
|
$(CXX) $(LDFLAGS) -o "$@" $^ $(LDLIBS)
|
||||||
@cp -r src/shaders $(BUILDDIR)
|
|
||||||
|
|
||||||
$(COBJS): $(COBJDIR)/%.o: %.c
|
$(COBJS): $(COBJDIR)/%.o: %.c
|
||||||
@mkdir -p "$(@D)"
|
@mkdir -p "$(@D)"
|
||||||
@@ -60,6 +64,10 @@ $(CXX_UNITY_OBJS): $(CXXOBJDIR)/%.o: %.cpp FORCE
|
|||||||
@mkdir -p "$(@D)"
|
@mkdir -p "$(@D)"
|
||||||
$(CXX) $(CXXFLAGS) "$<" -o "$@"
|
$(CXX) $(CXXFLAGS) "$<" -o "$@"
|
||||||
|
|
||||||
|
$(SHADER_OUT): $(SHADER_SRC)
|
||||||
|
@mkdir -p $(SHADER_OUTDIR)
|
||||||
|
$(SLANGC) $(SHADER_SRC) $(SLANGC_FLAGS) -o $(SHADER_OUT)
|
||||||
|
|
||||||
run:
|
run:
|
||||||
@cd $(BUILDDIR) && ./$(OUT_NAME)
|
@cd $(BUILDDIR) && ./$(OUT_NAME)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user