-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
31 lines (25 loc) · 1.37 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
CXXFLAGS= -std=c++17 -Wall -Wextra -Wpedantic -Wconversion -Wsign-conversion -Wnull-dereference -Weffc++
all: example tests coverage
example: cstring-example.cpp
$(CXX) -O2 -DNDEBUG $(CXXFLAGS) -o cstring-example cstring-example.cpp
./cstring-example
tests: cstring-tests.cpp
$(CXX) -fsanitize=address,undefined -g $(CXXFLAGS) -o cstring-tests cstring-tests.cpp -lasan -lubsan
./cstring-tests
coverage: cstring-tests.cpp
$(CXX) --coverage -O0 $(CXXFLAGS) -o cstring-coverage cstring-tests.cpp -lgcov
./cstring-coverage
mkdir coverage
lcov --no-external -d . -o coverage/coverage.info -c
lcov --remove coverage/coverage.info '*/doctest.h' -o coverage/coverage.info
lcov --remove coverage/coverage.info '*/cstring-tests.cpp' -o coverage/coverage.info
genhtml -o coverage coverage/coverage.info
static-analysis: cstring.hpp
cppcheck --enable=all --inconclusive --suppress=unusedFunction --suppress=noExplicitConstructor --suppress=missingIncludeSystem cstring.hpp
clang-tidy cstring.hpp -checks='-*,readability-*,-readability-redundant-access-specifiers,-readability-identifier-length,-readability-braces-around-statements,-readability-math-missing-parentheses,performance-*,portability-*,misc-*,clang-analyzer-*,bugprone-*,-clang-diagnostic-error' -extra-arg=-std=c++20
clean:
rm -f cstring-tests
rm -f cstring-coverage
rm -f cstring-example
rm -f *.gcda *.gcno
rm -rvf coverage