summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile25
1 files changed, 22 insertions, 3 deletions
diff --git a/Makefile b/Makefile
index 5837100..0d03f50 100644
--- a/Makefile
+++ b/Makefile
@@ -15,6 +15,7 @@ CXX = clang++
CXX_STD = -std=c++11
CXX_FLAGS = -fno-rtti -fno-exceptions $(CXX_STD) $(CSH_FLAGS)
+CARGO = cargo
RM = rm -rf
ECHO = echo
CMAKE = cmake
@@ -35,7 +36,20 @@ MI_FLAGS = \
HASHMAP_DIR = $(WORK_DIR)/hashmap
HASHMAP_SOURCE = $(HASHMAP_DIR)/hashmap.c
-CSH_FLAGS += -I$(MI_INCLUDE) -I$(HASHMAP_DIR)
+WGPU_DIR = $(WORK_DIR)/wgpu
+WGPU_MANIFEST = $(WGPU_DIR)/Cargo.toml
+WGPU_INCLUDE = $(WGPU_DIR)/ffi
+WGPU_WEBGPU_INCLUDE = $(WGPU_INCLUDE)/webgpu-headers
+WGPU_BUILD = $(WGPU_DIR)/target/release
+WGPU_LIB = $(WGPU_BUILD)/libwgpu_native.a
+WGPU_MANIFEST_FLAG = --manifest-path $(WGPU_MANIFEST)
+WGPU_FLAGS = --release $(WGPU_MANIFEST_FLAG)
+
+CSH_FLAGS += \
+ -I$(MI_INCLUDE) \
+ -I$(HASHMAP_DIR) \
+ -I$(WGPU_INCLUDE) \
+ -I$(WGPU_WEBGPU_INCLUDE)
MI_GENERATOR = "Unix Makefiles"
@@ -58,10 +72,14 @@ OBJECTS += $(MI_OBJECT)
DEPS = $(OBJECTS:.o=.d)
-LIBRARIES = -lwayland-client -lvulkan
+LIBRARIES = -lwayland-client -lvulkan $(WGPU_LIB)
all: $(WAYCLOCK)
+$(WGPU_LIB):
+ @echo " CARGO $@"
+ @$(CARGO) build $(WGPU_FLAGS)
+
$(MI_BUILD):
@echo " CMAKE $@"
@$(CMAKE) $(MI_DIR) -B $@ -G $(MI_GENERATOR) $(MI_FLAGS)
@@ -70,7 +88,7 @@ $(MI_OBJECT): | $(MI_BUILD)
@echo " MAKE $@"
@$(MAKE) -C $(MI_BUILD)
-$(WAYCLOCK): $(OBJECTS)
+$(WAYCLOCK): $(OBJECTS) $(LIBRARIES)
@echo " LD $@"
@$(CXX) $(CXX_FLAGS) -o $@ $^ $(LIBRARIES)
@@ -84,6 +102,7 @@ $(WAYCLOCK): $(OBJECTS)
.PHONY: clean
clean:
+ @$(CARGO) clean $(WGPU_MANIFEST_FLAG)
@$(RM) $(OBJECTS) $(DEPS)
@$(RM) $(WAYCLOCK)
@$(RM) $(MI_BUILD)