diff --git a/Makefile.include b/Makefile.include index 728393fab9..b2c2bc3caf 100644 --- a/Makefile.include +++ b/Makefile.include @@ -844,6 +844,8 @@ objdump: $(call check_cmd,$(OBJDUMP),Objdump program) $(OBJDUMP) $(OBJDUMPFLAGS) $(ELFFILE) | less +# inlcude clang-tidy +include $(RIOTMAKE)/clang_tidy.inc.mk # Support Eclipse IDE. include $(RIOTMAKE)/eclipse.inc.mk diff --git a/makefiles/clang_tidy.inc.mk b/makefiles/clang_tidy.inc.mk new file mode 100644 index 0000000000..9161f8c00e --- /dev/null +++ b/makefiles/clang_tidy.inc.mk @@ -0,0 +1,18 @@ +.PHONY: clang-tidy + +ifneq (, $(filter clang-tidy,$(MAKECMDGOALS))) +ifneq (llvm,$(TOOLCHAIN)) + $(error clang-tidy must be ran with TOOLCHAIN=llvm) +endif +endif + +FILE_REFEX = '.([CcHh]|[ch]pp)$$' +DIFF_FILTER ?= 'ACMR' +BASE_BRANCH ?= master + +CLANG_TIDY_CHECKS ?= * +CLANG_TIDY_SRCS ?= $(shell git diff --diff-filter=$(DIFF_FILTER) --name-only $(BASE_BRANCH) | grep -E $(FILE_REFEX)) + +clang-tidy: + $(Q)cd $(RIOTBASE); \ + clang-tidy -checks=$(CLANG_TIDY_CHECKS) $(CLANG_TIDY_SRCS) -- $(CFLAGS) $(INCLUDES)