| |
| # Whether to turn compiler warnings into errors |
| export WERROR ?= true |
| export BUILD_DIR ?= cmake-build |
| export XCODE_PROJ_DIR ?= xcode-project |
| |
| default: release |
| |
| release: |
| mkdir -p ./$(BUILD_DIR) && cd ./$(BUILD_DIR) && cmake ../ -DCMAKE_BUILD_TYPE=Release -DWERROR=$(WERROR) && VERBOSE=1 cmake --build . |
| |
| debug: |
| mkdir -p ./$(BUILD_DIR) && cd ./$(BUILD_DIR) && cmake ../ -DCMAKE_BUILD_TYPE=Debug -DWERROR=$(WERROR) && VERBOSE=1 cmake --build . |
| |
| xcode: |
| mkdir -p ./$(XCODE_PROJ_DIR) && cd ./$(XCODE_PROJ_DIR) && cmake -G Xcode ../ |
| |
| test: |
| @if [ -f ./$(BUILD_DIR)/unit-tests ]; then ./$(BUILD_DIR)/unit-tests; else echo "Please run 'make release' or 'make debug' first" && exit 1; fi |
| |
| bench: |
| @if [ -f ./$(BUILD_DIR)/bench-tests ]; then ./$(BUILD_DIR)/bench-tests; else echo "Please run 'make release' or 'make debug' first" && exit 1; fi |
| |
| tidy: |
| @echo "not implmented" |
| |
| coverage: |
| @echo "not implmented" |
| |
| clean: |
| rm -rf ./$(BUILD_DIR) |
| # remove remains from running 'make coverage' |
| rm -f *.profraw |
| rm -f *.profdata |
| @echo "run 'make distclean' to also clear mason_packages, .mason, and .toolchain directories" |
| |
| distclean: clean |
| rm -rf mason_packages |
| # remove remains from running './scripts/setup.sh' |
| rm -rf .mason |
| rm -rf .toolchain |
| rm -f local.env |
| |
| format: |
| ./scripts/format.sh |
| |
| .PHONY: test bench |