Files
voxelforge/Makefile
T
2026-09-01 13:10:09 +02:00

40 lines
1021 B
Makefile

CORE_SRC := $(wildcard core/src/*.cpp)
TEST_SRC := $(wildcard tests/*.cpp)
RENDER_SRC := $(wildcard render/*.cpp)
CORE_INCLUDE := -Icore/include
CXXFLAGS := -std=c++17 -O2 -Wall -Wextra -pthread $(CORE_INCLUDE)
BUILD := build
TEST_BIN := $(BUILD)/voxelforgeTests
WEB_OUT := web/index.html
.PHONY: all test web clean run-web
all: test
test: $(TEST_BIN)
./$(TEST_BIN)
$(TEST_BIN): $(CORE_SRC) $(TEST_SRC) | $(BUILD)
$(CXX) $(CXXFLAGS) -Itests $(CORE_SRC) $(TEST_SRC) -o $@
$(BUILD):
mkdir -p $(BUILD)
web: $(WEB_OUT)
$(WEB_OUT): $(CORE_SRC) $(RENDER_SRC)
@mkdir -p web
em++ -std=c++17 -O2 $(CORE_INCLUDE) -Irender $(CORE_SRC) $(RENDER_SRC) \
-s USE_WEBGL2=1 -s FULL_ES3=1 -s MIN_WEBGL_VERSION=2 -s MAX_WEBGL_VERSION=2 \
-s ALLOW_MEMORY_GROWTH=1 -s EXPORTED_RUNTIME_METHODS=['UTF8ToString','stringToUTF8','lengthBytesUTF8'] \
--shell-file render/shell.html \
-o $(WEB_OUT)
run-web: web
emrun --no_browser --port 8080 web/index.html
clean:
rm -rf $(BUILD) web/index.html web/index.js web/index.wasm