File: run-clang-tidy.sh

package info (click to toggle)
cryfs 1.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 28,412 kB
  • sloc: cpp: 150,187; asm: 10,493; python: 1,455; javascript: 65; sh: 50; makefile: 17; xml: 7
file content (27 lines) | stat: -rwxr-xr-x 1,104 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash

# Note: Call this from a cmake build directory (e.g. cmake/) for out-of-source builds
# Examples:
# mkdir cmake && cd cmake && ../run-clang-tidy.sh
# mkdir cmake && cd cmake && ../run-clang-tidy.sh -fix
# mkdir cmake && cd cmake && ../run-clang-tidy.sh -export-fixes fixes.yaml

set -e
set -v

SCRIPT=run-clang-tidy-17.py

export NUMCORES=`nproc` && if [ ! -n "$NUMCORES" ]; then export NUMCORES=`sysctl -n hw.ncpu`; fi
echo Using ${NUMCORES} cores

# Run cmake in current working directory, but on source that is in the same directory as this script file
conan build . --build=missing -o "&:build_tests=True" -o "&:export_compile_commands=True" -o "&:use_ccache=True" -s build_type=Debug

# Filter all third party code from the compilation database
ROOTPATH=$(realpath ${0%/*})
cd build/Debug
cat compile_commands.json|jq "map(select(.file | test(\"^${ROOTPATH}/(src|test)/.*$\")))" > compile_commands2.json
rm compile_commands.json
mv compile_commands2.json compile_commands.json

${SCRIPT} -j${NUMCORES} -quiet -config-file ../../.clang-tidy -header-filter "${ROOTPATH}/(src|test)/.*" $@