mirror of
https://github.com/Kbz-8/42_vox.git
synced 2026-01-11 06:33:36 +00:00
adding custom pipeline for water (what a journey to do so...)
This commit is contained in:
37
Makefile
37
Makefile
@@ -2,11 +2,16 @@ NAME = vox
|
||||
|
||||
SRCS += $(wildcard $(addsuffix /*.cpp, ./Application))
|
||||
|
||||
SHADER_SRCS = $(wildcard $(addsuffix /*.nzsl, ./Resources/Shaders))
|
||||
|
||||
BIN_DIR = Bin
|
||||
OBJ_DIR = Objects
|
||||
RES_DIR = Resources
|
||||
SHADER_DIR = Resources/Shaders/Build
|
||||
SHADER_MODULE_DIR = ScopEngine/Assets/Shaders/Modules
|
||||
|
||||
OBJS = $(addprefix $(OBJ_DIR)/, $(SRCS:.cpp=.o))
|
||||
SPVS = $(addprefix $(SHADER_DIR)/, $(SHADER_SRCS:.nzsl=.spv))
|
||||
|
||||
CXX = clang++
|
||||
CXXFLAGS = -std=c++20 -I ScopEngine/Runtime/Includes -I Application -I ScopEngine/ThirdParty/KVF -I ScopEngine/ThirdParty -D KVF_IMPL_VK_NO_PROTOTYPES
|
||||
@@ -58,15 +63,25 @@ $(OBJ_DIR)/%.o: %.cpp
|
||||
|
||||
all: $(NAME)
|
||||
|
||||
$(NAME): $(OBJ_DIR) $(BIN_DIR) engine $(OBJS)
|
||||
@printf "$(COLOR)($(_BOLD)100%%$(_RESET)$(COLOR)) $(_RESET)Compiling $(_BOLD)Resources/Fragment.nzsl$(_RESET)\n"
|
||||
@$(NZSLC) --compile=spv Resources/Fragment.nzsl -o Resources/ --optimize --module="ScopEngine/Assets/Shaders/Modules"
|
||||
@printf "$(COLOR)($(_BOLD)100%%$(_RESET)$(COLOR)) $(_RESET)Compiling $(_BOLD)Resources/Screen.nzsl$(_RESET)\n"
|
||||
@$(NZSLC) --compile=spv Resources/PostProcess.nzsl -o Resources/ --optimize --module="ScopEngine/Assets/Shaders/Modules"
|
||||
$(NAME): $(OBJ_DIR) $(BIN_DIR) shaders engine $(OBJS)
|
||||
@printf "Linking $(_BOLD)$(NAME)$(_RESET)\n"
|
||||
@$(CXX) -o $(BIN_DIR)/$(NAME) $(OBJS) $(LDFLAGS)
|
||||
@printf "$(_BOLD)$(NAME)$(_RESET) compiled $(COLOR)$(_BOLD)successfully$(_RESET)\n"
|
||||
|
||||
SPVS_TOTAL = $(words $(SPVS))
|
||||
N_SPVS := $(shell find $(SHADERS_DIR) -type f -name '*.spv.h' 2>/dev/null | wc -l)
|
||||
SPVS_TOTAL := $(shell echo $$(( $(SPVS_TOTAL) - $(N_SPVS) )))
|
||||
ifeq ($(SPVS_TOTAL), 0) # Same
|
||||
SPVS_TOTAL := 1
|
||||
endif
|
||||
CURR_SPV = 0
|
||||
|
||||
$(SHADER_DIR)/%.spv: %.nzsl
|
||||
@$(eval CURR_SPV=$(shell echo $$(( $(CURR_SPV) + 1 ))))
|
||||
@$(eval PERCENT=$(shell echo $$(( $(CURR_SPV) * 100 / $(SPVS_TOTAL) ))))
|
||||
@printf "$(COLOR)($(_BOLD)%3s%%$(_RESET)$(COLOR)) $(_RESET)Compiling $(_BOLD)$<$(_RESET)\n" "$(PERCENT)"
|
||||
@$(NZSLC) --compile=spv $< -o $(SHADER_DIR) --optimize --module=$(SHADER_MODULE_DIR)
|
||||
|
||||
engine:
|
||||
@make -j$(JOBS) -C ScopEngine DEBUG=$(DEBUG) --no-print-directory
|
||||
|
||||
@@ -76,10 +91,18 @@ $(OBJ_DIR):
|
||||
$(BIN_DIR):
|
||||
@mkdir -p $(BIN_DIR)
|
||||
|
||||
$(SHADER_DIR):
|
||||
@mkdir -p $(SHADER_DIR)
|
||||
|
||||
shaders: $(SHADER_DIR) $(SPVS)
|
||||
|
||||
run:
|
||||
@$(BIN_DIR)/$(NAME) $(RES_DIR)/42.obj
|
||||
|
||||
re-shaders:
|
||||
clean-shaders:
|
||||
@$(RM) $(SHADER_DIR)
|
||||
|
||||
re-shaders: clean-shaders shaders
|
||||
@make -C ScopEngine re-shaders
|
||||
|
||||
clean:
|
||||
@@ -92,4 +115,4 @@ fclean: clean
|
||||
|
||||
re: fclean all
|
||||
|
||||
.PHONY: all run clean fclean re re-shaders
|
||||
.PHONY: all run clean fclean re clean-shaders re-shaders
|
||||
|
||||
Reference in New Issue
Block a user