diff --git a/.gitignore b/.gitignore index fe59d45..d8662f1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,3 @@ .build vendor/vulkan compile_commands.json -*.spv diff --git a/Makefile b/Makefile index ea99159..b63b7d8 100644 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ MACHINE = $(shell uname -m) PLATFORM = $(KERNEL)_$(MACHINE) CC = clang CXX = clang++ +SLANGC = slangc C_SRCS = src/main.c C_UNITY_SRCS = src/wapp/wapp.c \ src/config/config_src.c \ @@ -17,11 +18,14 @@ LDFLAGS = -g -DWP_DEBUG_ASSERT LDLIBS = -lm WND_BKND = SDL GPU_BKND = Vulkan +SLANGC_FLAGS = -entry vertMain -entry fragMain +SHADER_SRC = src/shaders/shader.slang BUILD_ROOT = .build BUILDDIR = $(BUILD_ROOT)/$(PLATFORM) OBJDIR = $(BUILDDIR)/obj COBJDIR = $(OBJDIR)/c CXXOBJDIR = $(OBJDIR)/cxx +SHADER_OUTDIR = $(BUILDDIR)/shaders ifeq ($(WND_BKND), SDL) 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) OUT_NAME = main OUT = $(BUILDDIR)/$(OUT_NAME) +SHADER_OUT = $(SHADER_OUTDIR)/shader.spv -build: $(OUT) +build: $(OUT) $(SHADER_OUT) $(OUT): $(OBJS) $(CXX) $(LDFLAGS) -o "$@" $^ $(LDLIBS) - @cp -r src/shaders $(BUILDDIR) $(COBJS): $(COBJDIR)/%.o: %.c @mkdir -p "$(@D)" @@ -60,6 +64,10 @@ $(CXX_UNITY_OBJS): $(CXXOBJDIR)/%.o: %.cpp FORCE @mkdir -p "$(@D)" $(CXX) $(CXXFLAGS) "$<" -o "$@" +$(SHADER_OUT): $(SHADER_SRC) + @mkdir -p $(SHADER_OUTDIR) + $(SLANGC) $(SHADER_SRC) $(SLANGC_FLAGS) -o $(SHADER_OUT) + run: @cd $(BUILDDIR) && ./$(OUT_NAME)