This commit is contained in:
2026-07-10 10:33:49 +01:00
parent 1bf565b543
commit 237f906127
8 changed files with 332 additions and 75 deletions
+60 -7
View File
@@ -1,15 +1,30 @@
.PHONY: all build-gui build-game run
.PHONY: all build-gui build-game run-desktop clean web
CXX = g++
WSL = wsl --shell-type login
WEB_CXX = $(WSL) em++
# EMSCRIPTE_H_PATH = "//wsl.localhost/archlinux/home/shadow/dev/external/emsdk/upstream/emscripten/system/include/emscripten.h"
BROWSER = "C:\Program Files\Mozilla Firefox\firefox.exe"
# upstream/emscripten/system/include/emscripten.h
ASSETS = "data.dat"
LDFLAGS = -L./external/raylib/lib \
-L./external/box2d/build/src \
-L./external/asset_packer/bin \
WEB_LDFLAGS = -L./external/raylib-web/lib \
-L./external/asset_packer/bin \
-sUSE_GLFW=3 \
--preload-file $(ASSETS)
LIBS = -lraylib -lwinmm -lgdi32 -lbox2d -lassetpacker
WEB_LIBS = -lraylib.web -lassetpacker.web
CXXFLAGS = -std=c++20 -O2 \
-MMD -MP
-MMD -MP
DEBUGFLAGS = -std=c++20 -g -O0
@@ -22,6 +37,16 @@ INCLUDES = -I./external/raylib/include \
-I./external/nhlohmann_json_3.12.0/ \
-I./external/asset_packer/bin/include \
WEB_INCLUDES = -I./external/raylib-web/include \
-I./external/entt/single_include \
-I./src/include \
-I./external/imgui \
-I./external/rlImGui \
-I./external/box2d/include \
-I./external/nhlohmann_json_3.12.0/ \
-I./external/asset_packer/bin/include \
# -I./external/emscripten/include \
IMGUI_SRCS = ./external/imgui/imgui.cpp \
./external/imgui/imgui_demo.cpp \
./external/imgui/imgui_draw.cpp \
@@ -50,7 +75,7 @@ OBJS_FILES = $(patsubst ./src/%.cpp,./bin/%.o,$(SRC_FILES))
DEP_FILES = $(patsubst ./bin/%.o,./bin/%.d,$(OBJS_FILES))
all: build-game run
all: build-game run-desktop
./bin/%.o: ./external/imgui/%.cpp
@mkdir -p bin
@@ -65,10 +90,18 @@ all: build-game run
@mkdir -p $(dir $@)
$(CXX) $(CXXFLAGS) $(INCLUDES) -c $< -o $@
compile_commands.json: clean
ccj: clean
@echo "Generating compile_commands.json..."
bear -- $(MAKE)
ccj-web: clean
@echo "Generating web compile_commands.json..."
$(WSL) bear -- $(MAKE) web-native
@sed -i '$$ s/,$$//' compile_commands.json
@sed -i 's|"/home/|"\\\\\\\\wsl.localhost\\\\archlinux\\\\home\\\\|g' compile_commands.json
@sed -i 's|=/home/|=\\\\\\\\wsl.localhost\\\\archlinux\\\\home\\\\|g' compile_commands.json
@sed -i 's|"/mnt/c/|"C:/|g' compile_commands.json
-include $(DEP_FILES)
build-gui: $(IMGUI_OBJS)
@@ -93,22 +126,42 @@ build-debug:
$(CXX) $(DEBUGFLAGS) $(INCLUDES) $(ENTRY_POINT) $(SRC_FILES) $(IMGUI_OBJS) $(IMGUI_BACKEND_OBJS) $(LDFLAGS) $(LIBS) -o ./debug/d.exe
cp ./data.dat ./debug -rf
web:
@mkdir -p web
$(WEB_CXX) $(CXXFLAGS) $(WEB_INCLUDES) $(ENTRY_POINT) $(SRC_FILES) $(IMGUI_SRCS) $(IMGUI_BACKEND) $(WEB_LDFLAGS) $(WEB_LIBS) -o ./web/web.html
web-native:
@mkdir -p web
em++ $(CXXFLAGS) $(WEB_INCLUDES) $(ENTRY_POINT) $(SRC_FILES) $(IMGUI_SRCS) $(IMGUI_BACKEND) $(WEB_LDFLAGS) $(WEB_LIBS) -o ./web/web.html
clean:
clean-desktop:
@rm -r -f ./bin
@rm -f compile_commands.json
clean-debug:
@rm -r -f ./debug
clean-all: clean clean-debug
clean-web:
@rm -r -f ./web
run:
clean: clean-desktop clean-debug clean-web
run-desktop:
./bin/main.exe
open-browser:
$(BROWSER)
start-server:
$(WSL) python -m http.server 3000 -d ./web
run-web:
$(BROWSER) http://localhost:3000/web.html
$(WSL) python -m http.server 3000 -d ./web
# $(WSL) node ./web/web.js
run-debug:
./debug/d.exe
run-test: build-test
./bin/test.exe