-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
49 lines (38 loc) · 1.72 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
export PATH := $(shell pwd)/scripts:$(PATH)
CLANG_FORMAT_BIN ?= clang-format
CLANG_REPLACEMENTS_BIN ?= clang-apply-replacements-14
CLANG_TIDY_BIN ?= clang-tidy-14
CLANG_TIDY_ARGS = ./scripts/run-clang-tidy.py -clang-tidy-binary ${CLANG_TIDY_BIN} -clang-apply-replacements-binary ${CLANG_REPLACEMENTS_BIN} -j $(shell nproc)
.PHONY: tidy-check
tidy-check:
${CLANG_TIDY_ARGS} -quiet -p $(BUILD_DIR) -header-filter $(shell realpath ./src) $(shell realpath ./src)
.PHONY: tidy-fix
tidy-fix:
${CLANG_TIDY_ARGS} -fix -quiet -p $(BUILD_DIR) -header-filter $(shell realpath ./src) $(shell realpath ./src)
.PHONY: docs
docs:
doxygen ./docs/Doxyfile
.PHONY: docs-pdf
docs-pdf: docs
make -C cmake-build-doxygen/latex pdf
cp cmake-build-doxygen/latex/refman.pdf "cmake-build-doxygen/Electrickick Developer Manual.pdf"
.PHONY: coverage
coverage:
cmake -S . -G Ninja -B cmake-build-coverage -D CMAKE_BUILD_TYPE=Debug -D LT_ENABLE_COVERAGE=TRUE
cmake --build cmake-build-coverage
cd cmake-build-coverage && ctest
.PHONY: coverage-html
coverage-html: coverage
cd cmake-build-coverage && gcovr --html --html-details --exclude-unreachable-branches -o coverage.html -r ../src -j ${shell nproc} -s .
.PHONY: coverage-xml
coverage-xml: coverage
cd cmake-build-coverage && gcovr --xml-pretty --exclude-unreachable-branches -o coverage.xml -r ../src -j ${shell nproc} -s .
.PHONY: stats
stats:
@cloc -by-file-by-lang --exclude-dir=3rd_party --exclude-ext=svg --vcs=git .
.PHONY: format
format:
@find src -iname '*.hpp' -o -iname '*.h' -o -iname '*.cpp' | xargs ${CLANG_FORMAT_BIN} -i
.PHONY: format-check
format-check:
@find src -iname '*.hpp' -o -iname '*.h' -o -iname '*.cpp' | xargs -n 1 -P 1 -I{} -t sh -c '${CLANG_FORMAT_BIN} -style=file {} | diff - {}'