add Makefile
diff --git a/.gitignore b/.gitignore index 7dae8e6..d556ffd 100644 --- a/.gitignore +++ b/.gitignore
@@ -2,7 +2,6 @@ CMakeFiles CMakeScripts Testing -Makefile cmake_install.cmake install_manifest.txt compile_commands.json
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b6ca0a1 --- /dev/null +++ b/Makefile
@@ -0,0 +1,43 @@ + +# Whether to turn compiler warnings into errors +export WERROR ?= true +export BUILD_DIR ?= cmake-build + +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 . + +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: + @echo "not implmented" + +.PHONY: test bench \ No newline at end of file