From 9d88d2c7130ebccdec12abf6420843d0f5e08e8e Mon Sep 17 00:00:00 2001 From: Tobias Markmann Date: Mon, 30 Jul 2018 15:38:23 +0200 Subject: Add clang-tidy-fix target to Makefile This has clang-tidy write changes out to YAML files in parallel and finally runs clang-apply-replacements which merges, deduplicates and applies the changes in serial. Uses Python to determine the number of parallel jobs to run. Test-Information: Tested by adding new checks and running clang-tidy-fix. Works as described above and is much faster compared to a serial `clang-tidy -fix` run. Change-Id: Idb357e63edeba75ef9a4fb53f5ddef2a7c3c23ee diff --git a/.clang-tidy b/.clang-tidy index 7d7f4ca..406a7e0 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -99,7 +99,6 @@ Checks: > # readability-named-parameter, # readability-redundant-smartptr-get, # readability-simplify-boolean-expr, -WarningsAsErrors: '*' HeaderFilterRegex: '(Swift|Swiften|Sluift)/.*' AnalyzeTemporaryDtors: false CheckOptions: diff --git a/Makefile b/Makefile index d72f311..b26f8a3 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,18 @@ + +NUM_CPU := $(shell python -c 'import multiprocessing; print(multiprocessing.cpu_count())') + .PHONY: all all: build.ninja ninja .PHONY: clang-tidy clang-tidy: compile_commands.json - ninja -t targets all | grep cxx | grep -v 3rdParty | sed -e's/\.o: cxx/.cpp/' | xargs -n 1 clang-tidy + ninja -t targets all | grep cxx | grep -v 3rdParty | sed -e's/\.o: cxx/.cpp/' | xargs -t -P ${NUM_CPU} -n 1 clang-tidy -warnings-as-errors=* + +.PHONY: clang-tidy-fix +clang-tidy-fix: compile_commands.json + ninja -t targets all | grep cxx | grep -v 3rdParty | sed -e's/\.o: cxx/.cpp/' | xargs -t -P ${NUM_CPU} -n 1 -I{} clang-tidy -p=${PWD} -export-fixes={}.clang-tidy-changes.yaml {} + clang-apply-replacements -remove-change-desc-files ${PWD} compile_commands.json: build.ninja ninja -t compdb cxx > compile_commands.json -- cgit v0.10.2-6-g49f6