summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2018-07-30 13:38:23 (GMT)
committerTobias Markmann <tm@ayena.de>2018-07-30 14:13:53 (GMT)
commit9d88d2c7130ebccdec12abf6420843d0f5e08e8e (patch)
tree140caa05f646906e91399e2d9d0b319a59ce8e16
parent798f8ec3331043a92f6ca3bc810b9477c3f8261e (diff)
downloadswift-9d88d2c7130ebccdec12abf6420843d0f5e08e8e.zip
swift-9d88d2c7130ebccdec12abf6420843d0f5e08e8e.tar.bz2
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
-rw-r--r--.clang-tidy1
-rw-r--r--Makefile10
2 files changed, 9 insertions, 2 deletions
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