From 998abf05bab47f6d7593e17540fc314c2c294ba9 Mon Sep 17 00:00:00 2001 From: "Daniel J. Hofmann" Date: Fri, 11 Sep 2015 17:14:36 +0200 Subject: [PATCH] Integration scripts for Clang's Modernize and Tidy tool. New directory: `scripts/`, in which small scripts for developers reside. - `modernize`: runs all cpp files through `clang-modernize`, respecting out targeted compiler versions, applying C++11 transformations, doing syntax checks and formatting --- in parallel. - `tidy`: runs all cpp files through `clang-tidy`, with selected warnings only, since we do not want to warn on every small detail. Please check the talk slides for `clang-tidy` linked in the references! References: - http://clang.llvm.org/extra/clang-tidy/ - http://llvm.org/devmtg/2014-04/PDFs/Talks/clang-tidy%20LLVM%20Euro%202014.pdf - http://clang.llvm.org/extra/clang-tidy/checks/list.html - https://github.com/Project-OSRM/osrm-backend/pull/1603 --- .clang-tidy | 4 ++++ scripts/modernize.sh | 6 ++++++ scripts/tidy.sh | 6 ++++++ update_depdendencies.sh => scripts/update_depdendencies.sh | 2 +- 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .clang-tidy create mode 100755 scripts/modernize.sh create mode 100755 scripts/tidy.sh rename update_depdendencies.sh => scripts/update_depdendencies.sh (92%) diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 00000000000..de4303bf8db --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,4 @@ +--- +Checks: '-clang-analyzer-*,google-*,llvm-*,misc-*,readability-*,-google-build-explicit-make-pair,-google-explicit-constructor,-google-readability-braces-around-statements,-google-readability-casting,-google-readability-namespace-comments,-google-readability-function,-google-readability-todo,-google-runtime-int,-llvm-namespace-comment,-llvm-header-guard,-llvm-twine-local,-misc-argument-comment,-readability-braces-around-statements,-readability-identifier-naming' +... + diff --git a/scripts/modernize.sh b/scripts/modernize.sh new file mode 100755 index 00000000000..ee0f2ed460f --- /dev/null +++ b/scripts/modernize.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# Runs the Clang Modernizer in parallel on the code base. +# Requires a compilation database in the build directory. + +git ls-files '*.cpp' | xargs -I{} -P $(nproc) clang-modernize -p build -final-syntax-check -format -style=file -summary -for-compilers=clang-3.4,gcc-4.8 -include . -exclude third_party {} diff --git a/scripts/tidy.sh b/scripts/tidy.sh new file mode 100755 index 00000000000..7ecabfa4587 --- /dev/null +++ b/scripts/tidy.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +# Runs the Clang Tidy Tool in parallel on the code base. +# Requires a compilation database in the build directory. + +git ls-files '*.cpp' | grep -v third_party | xargs -I{} -P $(nproc) clang-tidy -p build -header-filter='.*' {} diff --git a/update_depdendencies.sh b/scripts/update_depdendencies.sh similarity index 92% rename from update_depdendencies.sh rename to scripts/update_depdendencies.sh index aa2ede5fc10..e443cfa5fb2 100755 --- a/update_depdendencies.sh +++ b/scripts/update_depdendencies.sh @@ -3,7 +3,7 @@ OSMIUM_REPO=https://github.com/osmcode/libosmium.git OSMIUM_TAG=v2.3.0 -VARIANT_REPO=https://github.com/mapbox/variant.git +VARIANT_REPO=https://github.com/mapbox/variant.git VARIANT_TAG=v1.0 VARIANT_LATEST=$(curl https://api.github.com/repos/mapbox/variant/releases/latest | jq ".tag_name")