40 lines
1012 B
Makefile
40 lines
1012 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 $(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
|