clang-tidy & cmake on Ubuntu 18.04

Ubuntu 18.04

Install clang:
sudo apt-get install libllvm-6.0-ocaml-dev libllvm6.0 llvm-6.0 llvm-6.0-dev llvm-6.0-doc llvm-6.0-examples llvm-6.0-runtime
sudo apt-get install libllvm6.0 llvm-6.0 llvm-6.0-dev llvm-6.0-doc llvm-6.0-examples llvm-6.0-runtime
sudo apt-get install clang-6.0 clang-tools-6.0 clang-6.0-doc libclang-common-6.0-dev libclang-6.0-dev libclang1-6.0 clang-format-6.0 python-clang-6.0
sudo apt-get install libfuzzer-6.0-dev
sudo apt-get install lldb-6.0
sudo apt-get install lld-6.0

Obtain helper script:

In your build directory:

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..

To check that clang-tidy is installed:

clang-tidy --list-checks -checks='*' | grep "modernize"

Simple modernisation of C++ code:

./run-clang-tidy.py -header-filter='.*' -checks='-*,modernize-loop-convert,modernize-pass-by-value,modernize-replace-auto-ptr,modernize-shrink-to-fit,modernize-use-emplace,modernize-use-override,modernize-use-using,modernize-pass-by-value,modernize-use-bool-literals,modernize-use-default-member-init,modernize-use-equals-default,modernize-use-equals-delete' -fix -clang-apply-replacements-binary=/usr/bin/clang-apply-replacements-6.0

Additional update, just check the changes carefully and make sure the code builds and tests pass:

./run-clang-tidy.py -header-filter='.*' -checks='clang-analyzer-*,-clang-analyzer-cplusplus*' -fix -clang-apply-replacements-binary=/usr/bin/clang-apply-replacements-6.0
./run-clang-tidy.py -header-filter='.*' -checks='-*,cppcoreguidelines-*' -fix -clang-apply-replacements-binary=/usr/bin/clang-apply-replacements-6.0







Comments