64 lines
2.0 KiB
Makefile
64 lines
2.0 KiB
Makefile
default: help
|
|
|
|
# The general philosophy and functionality of this makefile is shamelessly stolen from compiler explorer
|
|
|
|
help: # with thanks to Ben Rady
|
|
@grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
|
|
.PHONY: build
|
|
build: debug ## build in debug mode
|
|
|
|
build/configured-debug:
|
|
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DCPPTRACE_BUILD_TESTING=On -DCPPTRACE_BUILD_TOOLS=On
|
|
rm -f build/configured-release
|
|
touch build/configured-debug
|
|
|
|
build/configured-release:
|
|
cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DCPPTRACE_BUILD_TESTING=On -DCPPTRACE_BUILD_TOOLS=On
|
|
rm -f build/configured-debug
|
|
touch build/configured-release
|
|
|
|
.PHONY: configure-debug
|
|
configure-debug: build/configured-debug
|
|
|
|
.PHONY: configure-release
|
|
configure-release: build/configured-release
|
|
|
|
.PHONY: debug
|
|
debug: configure-debug ## build in debug mode
|
|
cmake --build build
|
|
|
|
.PHONY: release
|
|
release: configure-release ## build in release mode (with debug info)
|
|
cmake --build build
|
|
|
|
.PHONY: debug-msvc
|
|
debug-msvc: ## build in debug mode
|
|
cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DCPPTRACE_BUILD_TESTING=On -DCPPTRACE_BUILD_TOOLS=On
|
|
cmake --build build --config Debug
|
|
|
|
.PHONY: release-msvc
|
|
release-msvc: ## build in release mode (with debug info)
|
|
cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DCPPTRACE_BUILD_TESTING=On -DCPPTRACE_BUILD_TOOLS=On
|
|
cmake --build build --config RelWithDebInfo
|
|
|
|
.PHONY: clean
|
|
clean: ## clean
|
|
rm -rf build
|
|
|
|
.PHONY: test
|
|
test: debug ## test
|
|
cd build && ninja test
|
|
|
|
.PHONY: test-release
|
|
test-release: release ## test-release
|
|
cd build && ninja test
|
|
|
|
# .PHONY: test-msvc
|
|
# test-msvc: debug-msvc ## test
|
|
# cmake --build build --target RUN_TESTS --config Debug
|
|
|
|
# .PHONY: test-msvc-release
|
|
# test-msvc-release: release-msvc ## test-release
|
|
# cmake --build build --target RUN_TESTS --config Release
|