78 lines
2.8 KiB
Makefile
Executable File
78 lines
2.8 KiB
Makefile
Executable File
debug: FORCE
|
|
meson setup build_dbg -Dbuildtype=debugoptimized
|
|
meson install --only-changed -C build_dbg
|
|
|
|
fast: FORCE
|
|
meson setup build_fast
|
|
meson install -C build_fast
|
|
|
|
release: FORCE
|
|
meson setup -Dbuildtype=release -Db_lto=true -Db_lto_mode=thin -Db_ndebug=true build_release
|
|
meson install -C build_release
|
|
|
|
sanitize: FORCE
|
|
meson setup -Db_sanitize=address -Db_sanitize=memory -Db_sanitize=leak -Db_sanitize=undefined build_sani
|
|
meson install -C build_sani
|
|
|
|
small: FORCE
|
|
meson setup -Dbuildtype=minsize -Db_lto=true -Db_ndebug=true build_small
|
|
meson install -C build_small
|
|
|
|
web: FORCE
|
|
meson setup -Deditor=false -Dbuildtype=minsize -Db_lto=true -Db_ndebug=true --cross-file emscripten.cross build_web
|
|
meson compile -C build_web
|
|
|
|
crosswin: FORCE
|
|
meson setup -Dbuildtype=debugoptimized --cross-file mingw32.cross build_win
|
|
meson compile -C build_win
|
|
|
|
FORCE:
|
|
|
|
IMAGE_LINUX := prosperon/linux-builder:latest
|
|
IMAGE_MINGW := prosperon/mingw-builder:latest
|
|
IMAGE_EMSCRIPTEN := prosperon/emscripten-builder:latest
|
|
PWD := $(shell pwd)
|
|
ARTIFACTS_DIR := artifacts
|
|
|
|
build:
|
|
meson setup build -Dbuildtype=release -Db_lto=true -Db_lto_mode=thin -Db_ndebug=true
|
|
meson compile -C build
|
|
|
|
dockerclean:
|
|
rm -rf build build-win $(ARTIFACTS_DIR)
|
|
|
|
dockerlinux: build-linux-image run-linux
|
|
|
|
build-linux-image:
|
|
docker build -f .github/docker/Dockerfile.linux -t $(IMAGE_LINUX) .
|
|
|
|
run-linux:
|
|
@mkdir -p $(ARTIFACTS_DIR)/linux
|
|
docker run --rm -v $(PWD):/src -w /src $(IMAGE_LINUX) bash -lc 'meson setup build -Dbuildtype=release -Db_lto=true -Db_ndebug=true && meson compile -C build && cp build/cell $(ARTIFACTS_DIR)/linux/'
|
|
|
|
dockerwin: build-mingw-image run-win
|
|
|
|
build-mingw-image:
|
|
docker build -f .github/docker/Dockerfile.mingw -t $(IMAGE_MINGW) .
|
|
|
|
run-win:
|
|
@mkdir -p $(ARTIFACTS_DIR)/windows
|
|
docker run --rm -v $(PWD):/src -w /src $(IMAGE_MINGW) bash -lc 'meson setup build-win --cross-file mingw32.cross -Dbuildtype=release -Db_lto=true -Db_ndebug=true && meson compile -C build-win && cp build-win/cell.exe $(ARTIFACTS_DIR)/windows/'
|
|
|
|
dockeremc: build-emscripten-image run-emc
|
|
|
|
build-emscripten-image:
|
|
docker build -f .github/docker/Dockerfile.emscripten -t $(IMAGE_EMSCRIPTEN) .
|
|
|
|
run-emc:
|
|
@mkdir -p $(ARTIFACTS_DIR)/emscripten
|
|
docker run --rm -v $(PWD):/src -w /src $(IMAGE_EMSCRIPTEN) bash -lc 'meson setup build-emscripten --cross-file emscripten.cross -Dbuildtype=release -Db_ndebug=true -Ddefault_library=static -Dcpp_std=c++11 && meson compile -C build-emscripten && cp build-emscripten/cell.wasm build-emscripten/cell.js $(ARTIFACTS_DIR)/emscripten/'
|
|
|
|
WINFILES = cell.exe steam_api64.dll steam_appid.txt tangletart.bat
|
|
WINDIRS = scripts .cell accio prosperon
|
|
|
|
win_release: FORCE
|
|
make dockerwin
|
|
cp build-win/cell.exe .
|
|
cp sdk/redistributable_bin/win64/steam_api64.dll .
|
|
zip -r $@ $(WINFILES) $(WINDIRS) --exclude=*.git* --exclude=*_doc* --exclude=*_concepts*
|