@@ -14,6 +14,8 @@ renderSources := $(call rwildcard,$(renderSrcDir)/,*.cpp)
14
14
renderObjects := $(call findobjs,$(renderSrcDir ) ,$(renderBinDir ) ,$(renderSources ) )
15
15
renderDepends := $(patsubst % .o, % .d, $(call rwildcard,$(renderBinDir ) /,* .o) )
16
16
renderBuildDir := $(renderBinDir ) /build
17
+ renderLibs := $(vendorDir ) /glfw/build/src/libglfw3.a $(vendorDir ) /zlib/build/lib/libz.a \
18
+ $(vendorDir ) /libpng/build/libpng.a $(vendorDir ) /freetype/build/libfreetype.a
17
19
18
20
# Set shader build vars
19
21
vertSources := $(call rwildcard,assets/shaders,* .vert)
@@ -23,44 +25,31 @@ fragObjects := $(patsubst %.frag,$(renderBuildDir)/%.frag.spv,$(fragSources))
23
25
24
26
linkFlags += -l utils
25
27
26
- # Set build vars
27
- ifeq ($(platform ) , windows)
28
- volkDefines = VK_USE_PLATFORM_WIN32_KHR
29
- glslangValidator := $(vendorDir ) \glslang\build\install\bin\glslangValidator.exe
30
- else ifeq ($(platform), linux)
31
- volkDefines = VK_USE_PLATFORM_XLIB_KHR
32
- glslangValidator := $(vendorDir)/glslang/build/install/bin/glslangValidator
33
- else ifeq ($(platform), macos)
34
- volkDefines = VK_USE_PLATFORM_MACOS_MVK
35
- glslangValidator := $(vendorDir)/glslang/build/install/bin/glslangValidator
36
- endif
37
28
compileFlags += -I $(vendorDir ) /vulkan/include -I $(vendorDir ) /glfw/include -I $(vendorDir ) /glm \
38
- -I $(vendorDir ) /tinyobjloader -I $(vendorDir ) /stb_image
29
+ -I $(vendorDir ) /tinyobjloader -I $(vendorDir ) /stb_image -I $(vendorDir ) /zlib/build/include \
30
+ -I $(vendorDir ) /libpng -I $(vendorDir ) /include/freetype
39
31
40
32
.PHONY : all vulkan-libs
41
33
42
34
all : $(renderLib ) $(vertObjects ) $(fragObjects ) vulkan-libs
43
35
44
36
# Build the static library
45
37
$(renderLib ) : $(renderObjects )
46
- $(MKDIR ) $(call platformpth, $(libDir ) )
47
38
$(RM ) $(call platformpth, $(renderLib ) )
48
- $(call COPY,$(vendorDir ) /glfw/src,$(libDir ) ,libglfw3.a)
49
- mv $(call platformpth,$(libDir ) /libglfw3.a) $(call platformpth,$(libDir ) /librender.a)
50
- ar -rcs $(renderLib ) $(renderObjects )
39
+ $(call COMBINE_LIBS, $(renderLibs ) , $(renderObjects ) , $(libDir ) , render)
51
40
52
41
# Add all rules from dependency files
53
42
-include $(renderDepends )
54
43
55
44
# Compile object files to the bin directory
56
45
$(renderBinDir ) /% .o : $(renderSrcDir ) /% .cpp
57
46
$(MKDIR ) $(call platformpth, $(@D ) )
58
- $(CXX ) -MMD -MP -c $(compileFlags ) -I $(engineDir ) $< -o $@ $(CXXFLAGS ) -D $( volkDefines )
47
+ $(CXX ) -MMD -MP -c $(compileFlags ) -I $(engineDir ) $< -o $@ $(CXXFLAGS ) -DVK_USE_PLATFORM_ $( VOLK_OS )
59
48
60
49
# Compile shaders to the build directory
61
50
$(renderBuildDir ) /assets/shaders/% .spv : $(renderSrcDir ) /assets/shaders/%
62
51
$(MKDIR ) $(call platformpth, $(@D ) )
63
- $(call platformpth,$(glslangValidator ) ) $< -V -o $@
52
+ $(call platformpth,$(vendorDir ) /glslang/build/StandAlone/ glslangValidator$( EXE_NAME ) ) $< -V -o $@
64
53
65
54
# Copy Vulkan libraries to the build directory
66
55
vulkan-libs :
0 commit comments