-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathMakefile
56 lines (42 loc) · 1.15 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
50
51
52
53
54
55
56
ifeq ($(CMAKE),)
CMAKE := $(shell which cmake3)
endif
ifeq ($(CMAKE),)
CMAKE := cmake
endif
ifeq ($(CLANG_FORMAT),)
CLANG_FORMAT := clang-format
endif
ifeq ($(RUN_CLANG_TIDY),)
RUN_CLANG_TIDY := run-clang-tidy
endif
ifeq ($(CTEST),)
CTEST := ctest
endif
CLANG_TIDY_CONF="$(shell pwd)/.clang-tidy"
SOURCE_DIR = tools/
SOURCE_REGEX = '.*\.\(cpp\|hpp\|c\|h\)'
.PHONY: all
all: build/Makefile
@$(MAKE) --no-print-directory -C build -j $(shell nproc)
%: build/Makefile
@$(MAKE) --no-print-directory -C build -j $(shell nproc) $@
build/Makefile: | build
@cd build && $(CMAKE) $(CMAKE_ARGS) ..
build:
@mkdir -p $@
.PHONY: format
format:
@find $(SOURCE_DIR) -type f -regex $(SOURCE_REGEX) -print0 | xargs -0 $(CLANG_FORMAT) --dry-run
.PHONY: format-fix
format-fix:
@find $(SOURCE_DIR) -type f -regex $(SOURCE_REGEX) -print0 | xargs -0 $(CLANG_FORMAT) -i
.PHONY: tidy
tidy: all
$(RUN_CLANG_TIDY) -p build -quiet -j $(shell nproc) -config-file=$(CLANG_TIDY_CONF) $(SOURCE_DIR)
.PHONY: tidy-fix
tidy-fix: all
$(RUN_CLANG_TIDY) -p build -quiet -fix -j $(shell nproc) -config-file=$(CLANG_TIDY_CONF) $(SOURCE_DIR)
.PHONY: test
test: all
$(CTEST) --test-dir build