Add clang-tidy to Github Actions
This commit is contained in:
parent
76dd104293
commit
dc85fae237
|
@ -2,7 +2,7 @@
|
||||||
# TODO Enable (some of) the explicitly disabled checks. Possibly needs helper types from gsl library or similar to enable full cppcoreguidelines.
|
# TODO Enable (some of) the explicitly disabled checks. Possibly needs helper types from gsl library or similar to enable full cppcoreguidelines.
|
||||||
# TODO Enable more checks (google-*, hicpp-*, llvm-*, modernize-*, mpi-*, performance-*, readability-*)
|
# TODO Enable more checks (google-*, hicpp-*, llvm-*, modernize-*, mpi-*, performance-*, readability-*)
|
||||||
# TODO Maybe just enable * and disable a list instead?
|
# TODO Maybe just enable * and disable a list instead?
|
||||||
# TODO Check if there's new checks in clang-tidy-9 and potentially enable them
|
# TODO Check if there's new checks in clang-tidy-9 and later and potentially enable them
|
||||||
Checks: |
|
Checks: |
|
||||||
clang-diagnostic-*,
|
clang-diagnostic-*,
|
||||||
clang-analyzer-*,
|
clang-analyzer-*,
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
name: 'Setup Linux'
|
||||||
|
description: 'Setup Linux'
|
||||||
|
inputs:
|
||||||
|
os:
|
||||||
|
description: "Exact os (i.e. ubuntu version) this runs on"
|
||||||
|
required: true
|
||||||
|
extra_apt_packages:
|
||||||
|
description: "Job-specific apt packages to install (e.g. the compiler)"
|
||||||
|
required: true
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Install Linux dependencies
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
if [[ "${{inputs.os}}" == "ubuntu-18.04" ]]; then
|
||||||
|
echo Adding apt repositories for newer clang versions on Ubuntu 18.04
|
||||||
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
|
||||||
|
sudo touch /etc/apt/sources.list.d/clang.list
|
||||||
|
sudo chmod o+w /etc/apt/sources.list.d/clang.list
|
||||||
|
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" >> /etc/apt/sources.list.d/clang.list
|
||||||
|
echo "deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" >> /etc/apt/sources.list.d/clang.list
|
||||||
|
sudo chmod o-w /etc/apt/sources.list.d/clang.list
|
||||||
|
elif [[ "${{inputs.os}}" == "ubuntu-20.04" ]]; then
|
||||||
|
echo Adding apt repositories for newer clang versions on Ubuntu 20.04
|
||||||
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
|
||||||
|
sudo touch /etc/apt/sources.list.d/clang.list
|
||||||
|
sudo chmod o+w /etc/apt/sources.list.d/clang.list
|
||||||
|
echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" >> /etc/apt/sources.list.d/clang.list
|
||||||
|
echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" >> /etc/apt/sources.list.d/clang.list
|
||||||
|
sudo chmod o-w /etc/apt/sources.list.d/clang.list
|
||||||
|
fi
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install ninja-build libcurl4-openssl-dev libfuse-dev ccache ${{inputs.extra_apt_packages}}
|
||||||
|
- name: Speed up random generator
|
||||||
|
run: |
|
||||||
|
set -v
|
||||||
|
# Use /dev/urandom when /dev/random is accessed to use less entropy
|
||||||
|
sudo cp -a /dev/urandom /dev/random
|
||||||
|
shell: bash
|
|
@ -0,0 +1,13 @@
|
||||||
|
name: 'Setup macOS'
|
||||||
|
description: 'Setup macOS'
|
||||||
|
inputs:
|
||||||
|
extra_homebrew_packages:
|
||||||
|
description: "Job-specific homebrew packages to install (e.g. the compiler)"
|
||||||
|
required: true
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Install macOS dependencies
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
brew install ninja macfuse libomp ccache md5sha1sum ${{inputs.extra_homebrew_packages}}
|
|
@ -75,7 +75,9 @@ jobs:
|
||||||
extra_cxxflags: [""]
|
extra_cxxflags: [""]
|
||||||
extra_env_vars_for_test: [""]
|
extra_env_vars_for_test: [""]
|
||||||
install_dependencies_manually: [false]
|
install_dependencies_manually: [false]
|
||||||
|
run_build: [true]
|
||||||
run_tests: [true]
|
run_tests: [true]
|
||||||
|
run_clang_tidy: [false]
|
||||||
include:
|
include:
|
||||||
- name: Local dependencies
|
- name: Local dependencies
|
||||||
os: ubuntu-18.04
|
os: ubuntu-18.04
|
||||||
|
@ -88,6 +90,7 @@ jobs:
|
||||||
extra_cxxflags: ""
|
extra_cxxflags: ""
|
||||||
extra_env_vars_for_test: ""
|
extra_env_vars_for_test: ""
|
||||||
install_dependencies_manually: true
|
install_dependencies_manually: true
|
||||||
|
run_build: true
|
||||||
run_tests: true
|
run_tests: true
|
||||||
- name: Local dependencies
|
- name: Local dependencies
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
@ -100,6 +103,7 @@ jobs:
|
||||||
extra_cxxflags: ""
|
extra_cxxflags: ""
|
||||||
extra_env_vars_for_test: ""
|
extra_env_vars_for_test: ""
|
||||||
install_dependencies_manually: true
|
install_dependencies_manually: true
|
||||||
|
run_build: true
|
||||||
run_tests: true
|
run_tests: true
|
||||||
- name: Werror gcc
|
- name: Werror gcc
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
@ -111,6 +115,7 @@ jobs:
|
||||||
extra_cmake_flags: -DUSE_WERROR=on
|
extra_cmake_flags: -DUSE_WERROR=on
|
||||||
extra_cxxflags: ""
|
extra_cxxflags: ""
|
||||||
install_dependencies_manually: false
|
install_dependencies_manually: false
|
||||||
|
run_build: true
|
||||||
run_tests: false
|
run_tests: false
|
||||||
- name: Werror clang
|
- name: Werror clang
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
@ -122,6 +127,7 @@ jobs:
|
||||||
extra_cmake_flags: -DUSE_WERROR=on
|
extra_cmake_flags: -DUSE_WERROR=on
|
||||||
extra_cxxflags: ""
|
extra_cxxflags: ""
|
||||||
install_dependencies_manually: false
|
install_dependencies_manually: false
|
||||||
|
run_build: true
|
||||||
run_tests: false
|
run_tests: false
|
||||||
- name: No compatibility
|
- name: No compatibility
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
@ -134,6 +140,7 @@ jobs:
|
||||||
extra_cxxflags: "-DCRYFS_NO_COMPATIBILITY"
|
extra_cxxflags: "-DCRYFS_NO_COMPATIBILITY"
|
||||||
extra_env_vars_for_test: ""
|
extra_env_vars_for_test: ""
|
||||||
install_dependencies_manually: false
|
install_dependencies_manually: false
|
||||||
|
run_build: true
|
||||||
run_tests: true
|
run_tests: true
|
||||||
- name: ASAN
|
- name: ASAN
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
@ -148,6 +155,7 @@ jobs:
|
||||||
extra_cxxflags: "-O1 -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common -fsanitize-address-use-after-scope"
|
extra_cxxflags: "-O1 -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common -fsanitize-address-use-after-scope"
|
||||||
extra_env_vars_for_test: ASAN_OPTIONS="detect_leaks=1 check_initialization_order=1 detect_stack_use_after_return=1 detect_invalid_pointer_pairs=1 atexit=1"
|
extra_env_vars_for_test: ASAN_OPTIONS="detect_leaks=1 check_initialization_order=1 detect_stack_use_after_return=1 detect_invalid_pointer_pairs=1 atexit=1"
|
||||||
install_dependencies_manually: false
|
install_dependencies_manually: false
|
||||||
|
run_build: true
|
||||||
run_tests: true
|
run_tests: true
|
||||||
- name: UBSAN
|
- name: UBSAN
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
@ -162,6 +170,7 @@ jobs:
|
||||||
extra_cxxflags: "-O1 -fno-sanitize-recover=undefined,nullability,implicit-conversion,unsigned-integer-overflow,local-bounds,float-divide-by-zero -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common"
|
extra_cxxflags: "-O1 -fno-sanitize-recover=undefined,nullability,implicit-conversion,unsigned-integer-overflow,local-bounds,float-divide-by-zero -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common"
|
||||||
extra_env_vars_for_test: UBSAN_OPTIONS="print_stacktrace=1"
|
extra_env_vars_for_test: UBSAN_OPTIONS="print_stacktrace=1"
|
||||||
install_dependencies_manually: false
|
install_dependencies_manually: false
|
||||||
|
run_build: true
|
||||||
run_tests: true
|
run_tests: true
|
||||||
- name: TSAN
|
- name: TSAN
|
||||||
os: ubuntu-20.04
|
os: ubuntu-20.04
|
||||||
|
@ -173,9 +182,25 @@ jobs:
|
||||||
extra_cmake_flags: ""
|
extra_cmake_flags: ""
|
||||||
extra_cxxflags: "-O2 -fsanitize=thread -fno-omit-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common"
|
extra_cxxflags: "-O2 -fsanitize=thread -fno-omit-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-common"
|
||||||
install_dependencies_manually: false
|
install_dependencies_manually: false
|
||||||
|
run_build: true
|
||||||
run_tests: true
|
run_tests: true
|
||||||
gtest_args: "--gtest_filter=-LoggingTest.LoggingAlsoWorksAfterFork:AssertTest_*:BacktraceTest.*:SignalCatcherTest.*_thenDies:SignalHandlerTest.*_thenDies:SignalHandlerTest.givenMultipleSigIntHandlers_whenRaising_thenCatchesCorrectSignal:CliTest_Setup.*:CliTest_IntegrityCheck.*:*/CliTest_WrongEnvironment.*:CliTest_Unmount.*:CliTest.WorksWithCommasInBasedir"
|
gtest_args: "--gtest_filter=-LoggingTest.LoggingAlsoWorksAfterFork:AssertTest_*:BacktraceTest.*:SignalCatcherTest.*_thenDies:SignalHandlerTest.*_thenDies:SignalHandlerTest.givenMultipleSigIntHandlers_whenRaising_thenCatchesCorrectSignal:CliTest_Setup.*:CliTest_IntegrityCheck.*:*/CliTest_WrongEnvironment.*:CliTest_Unmount.*:CliTest.WorksWithCommasInBasedir"
|
||||||
extra_env_vars_for_test: OMP_NUM_THREADS=1
|
extra_env_vars_for_test: OMP_NUM_THREADS=1
|
||||||
|
# TODO Update to clang-tidy-11
|
||||||
|
- name: clang-tidy
|
||||||
|
os: ubuntu-20.04
|
||||||
|
compiler:
|
||||||
|
cxx: clang++-9
|
||||||
|
cc: clang-9
|
||||||
|
apt_package: clang++-9 clang-tidy-9
|
||||||
|
build_type: RelWithDebInfo
|
||||||
|
extra_cmake_flags: ""
|
||||||
|
extra_cxxflags: ""
|
||||||
|
install_dependencies_manually: false
|
||||||
|
run_build: false
|
||||||
|
run_tests: false
|
||||||
|
extra_env_vars_for_test: ""
|
||||||
|
run_clang_tidy: true
|
||||||
runs-on: ${{matrix.os}}
|
runs-on: ${{matrix.os}}
|
||||||
env:
|
env:
|
||||||
# Setting conan cache dir to a location where our Github Cache Action can find it
|
# Setting conan cache dir to a location where our Github Cache Action can find it
|
||||||
|
@ -184,41 +209,17 @@ jobs:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
#TODO Ideally, all the setup actions would be in their own subaction, but Github doesn't support using third party actions (e.g. cache) from nested actions yet, see https://github.com/actions/runner/issues/862
|
#TODO Ideally, all the setup actions would be in their own subaction, but Github doesn't support using third party actions (e.g. cache) from nested actions yet, see https://github.com/actions/runner/issues/862
|
||||||
- name: Install OSX dependencies
|
- name: Setup MacOS
|
||||||
if: ${{ runner.os == 'macOS' }}
|
if: ${{ runner.os == 'macOS' }}
|
||||||
shell: bash
|
uses: ./.github/workflows/actions/setup_macos
|
||||||
run: |
|
with:
|
||||||
brew install ninja macfuse libomp ccache md5sha1sum ${{matrix.compiler.homebrew_package}}
|
extra_homebrew_packages: ${{ matrix.compiler.homebrew_package }}
|
||||||
- name: Install Linux dependencies
|
- name: Setup Linux
|
||||||
if: ${{ runner.os == 'Linux' }}
|
if: ${{ runner.os == 'Linux' }}
|
||||||
shell: bash
|
uses: ./.github/workflows/actions/setup_linux
|
||||||
run: |
|
with:
|
||||||
if [[ "${{matrix.os}}" == "ubuntu-18.04" ]]; then
|
os: ${{ matrix.os }}
|
||||||
echo Adding apt repositories for newer clang versions on Ubuntu 18.04
|
extra_apt_packages: ${{ matrix.compiler.apt_package }}
|
||||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
|
|
||||||
sudo touch /etc/apt/sources.list.d/clang.list
|
|
||||||
sudo chmod o+w /etc/apt/sources.list.d/clang.list
|
|
||||||
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" >> /etc/apt/sources.list.d/clang.list
|
|
||||||
echo "deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" >> /etc/apt/sources.list.d/clang.list
|
|
||||||
sudo chmod o-w /etc/apt/sources.list.d/clang.list
|
|
||||||
elif [[ "${{matrix.os}}" == "ubuntu-20.04" ]]; then
|
|
||||||
echo Adding apt repositories for newer clang versions on Ubuntu 20.04
|
|
||||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
|
|
||||||
sudo touch /etc/apt/sources.list.d/clang.list
|
|
||||||
sudo chmod o+w /etc/apt/sources.list.d/clang.list
|
|
||||||
echo "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" >> /etc/apt/sources.list.d/clang.list
|
|
||||||
echo "deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main" >> /etc/apt/sources.list.d/clang.list
|
|
||||||
sudo chmod o-w /etc/apt/sources.list.d/clang.list
|
|
||||||
fi
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install ninja-build libcurl4-openssl-dev libfuse-dev ccache ${{matrix.compiler.apt_package}}
|
|
||||||
- name: Speed up random generator
|
|
||||||
if: ${{ runner.os == 'Linux' }}
|
|
||||||
run: |
|
|
||||||
set -v
|
|
||||||
# Use /dev/urandom when /dev/random is accessed to use less entropy
|
|
||||||
sudo cp -a /dev/urandom /dev/random
|
|
||||||
shell: bash
|
|
||||||
- name: Install local dependencies
|
- name: Install local dependencies
|
||||||
if: ${{ matrix.install_dependencies_manually }}
|
if: ${{ matrix.install_dependencies_manually }}
|
||||||
uses: ./.github/workflows/actions/install_local_dependencies
|
uses: ./.github/workflows/actions/install_local_dependencies
|
||||||
|
@ -289,7 +290,7 @@ jobs:
|
||||||
aws-secret-access-key: ${{ secrets.CACHE_AWS_SECRET_ACCESS_KEY }}
|
aws-secret-access-key: ${{ secrets.CACHE_AWS_SECRET_ACCESS_KEY }}
|
||||||
aws-region: ${{ secrets.CACHE_AWS_REGION }}
|
aws-region: ${{ secrets.CACHE_AWS_REGION }}
|
||||||
bucket: ${{ secrets.CACHE_AWS_S3_BUCKET }}
|
bucket: ${{ secrets.CACHE_AWS_S3_BUCKET }}
|
||||||
key: v0-${{ runner.os }}-${{ matrix.os }}-ccache__${{matrix.compiler.cxx}}__${{matrix.compiler.cc}}__${{matrix.build_type}}__${{steps.hash_flags.outputs.hash_flags}}__
|
key: v0-${{ runner.os }}-${{ matrix.os }}-ccache__${{matrix.compiler.cxx}}__${{matrix.compiler.cc}}__${{matrix.build_type}}__${{matrix.run_build}}__${{matrix.run_clang_tidy}}__${{steps.hash_flags.outputs.hash_flags}}__
|
||||||
- name: Show ccache statistics
|
- name: Show ccache statistics
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
@ -307,14 +308,14 @@ jobs:
|
||||||
bucket: ${{ secrets.CACHE_AWS_S3_BUCKET }}
|
bucket: ${{ secrets.CACHE_AWS_S3_BUCKET }}
|
||||||
key: v0-${{ runner.os }}-${{ matrix.os }}-conancache__${{matrix.compiler.cxx}}__${{matrix.compiler.cc}}__${{matrix.build_type}}__
|
key: v0-${{ runner.os }}-${{ matrix.os }}-conancache__${{matrix.compiler.cxx}}__${{matrix.compiler.cc}}__${{matrix.build_type}}__
|
||||||
- name: Build (macOS)
|
- name: Build (macOS)
|
||||||
if: ${{ runner.os == 'macOS' }}
|
if: ${{ matrix.run_build && runner.os == 'macOS' }}
|
||||||
uses: ./.github/workflows/actions/run_build
|
uses: ./.github/workflows/actions/run_build
|
||||||
with:
|
with:
|
||||||
cxx: ${{ matrix.compiler.macos_cxx }}
|
cxx: ${{ matrix.compiler.macos_cxx }}
|
||||||
cc: ${{ matrix.compiler.macos_cc }}
|
cc: ${{ matrix.compiler.macos_cc }}
|
||||||
build_type: ${{ matrix.build_type }}
|
build_type: ${{ matrix.build_type }}
|
||||||
- name: Build (Linux)
|
- name: Build (Linux)
|
||||||
if: ${{ runner.os == 'Linux' }}
|
if: ${{ matrix.run_build && runner.os == 'Linux' }}
|
||||||
uses: ./.github/workflows/actions/run_build
|
uses: ./.github/workflows/actions/run_build
|
||||||
with:
|
with:
|
||||||
cxx: ${{ matrix.compiler.cxx }}
|
cxx: ${{ matrix.compiler.cxx }}
|
||||||
|
@ -322,6 +323,27 @@ jobs:
|
||||||
build_type: ${{ matrix.build_type }}
|
build_type: ${{ matrix.build_type }}
|
||||||
extra_cmake_flags: ${{ matrix.extra_cmake_flags }}
|
extra_cmake_flags: ${{ matrix.extra_cmake_flags }}
|
||||||
extra_cxxflags: ${{ matrix.extra_cxxflags }}
|
extra_cxxflags: ${{ matrix.extra_cxxflags }}
|
||||||
|
- name: Run clang-tidy
|
||||||
|
if: ${{ matrix.run_clang_tidy }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -v
|
||||||
|
mkdir cmake
|
||||||
|
cd cmake
|
||||||
|
if ! ../run-clang-tidy.sh -fix ; then
|
||||||
|
git diff > /tmp/clang-tidy-fixes
|
||||||
|
echo Found clang tidy fixes:
|
||||||
|
cat /tmp/clang-tidy-fixes
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo Did not find any clang-tidy fixes
|
||||||
|
fi
|
||||||
|
- name: Upload fixes as artifact
|
||||||
|
if: ${{ matrix.run_clang_tidy }}
|
||||||
|
uses: actions/upload-artifact@v2
|
||||||
|
with:
|
||||||
|
name: clang-tidy-fixes
|
||||||
|
path: /tmp/clang-tidy-fixes
|
||||||
- name: Show ccache statistics
|
- name: Show ccache statistics
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
|
@ -342,7 +364,7 @@ jobs:
|
||||||
aws-secret-access-key: ${{ secrets.CACHE_AWS_SECRET_ACCESS_KEY }}
|
aws-secret-access-key: ${{ secrets.CACHE_AWS_SECRET_ACCESS_KEY }}
|
||||||
aws-region: ${{ secrets.CACHE_AWS_REGION }}
|
aws-region: ${{ secrets.CACHE_AWS_REGION }}
|
||||||
bucket: ${{ secrets.CACHE_AWS_S3_BUCKET }}
|
bucket: ${{ secrets.CACHE_AWS_S3_BUCKET }}
|
||||||
key: v0-${{ runner.os }}-${{ matrix.os }}-ccache__${{matrix.compiler.cxx}}__${{matrix.compiler.cc}}__${{matrix.build_type}}__${{steps.hash_flags.outputs.hash_flags}}__
|
key: v0-${{ runner.os }}-${{ matrix.os }}-ccache__${{matrix.compiler.cxx}}__${{matrix.compiler.cc}}__${{matrix.build_type}}__${{matrix.run_build}}__${{matrix.run_clang_tidy}}__${{steps.hash_flags.outputs.hash_flags}}__
|
||||||
artifacts: ${{ github.workspace }}/.ccache
|
artifacts: ${{ github.workspace }}/.ccache
|
||||||
- name: Save conan cache
|
- name: Save conan cache
|
||||||
uses: leroy-merlin-br/action-s3-cache@8d75079437b388688b9ea9c7d73dff4ef975c5fa # v1.0.5
|
uses: leroy-merlin-br/action-s3-cache@8d75079437b388688b9ea9c7d73dff4ef975c5fa # v1.0.5
|
||||||
|
@ -359,4 +381,4 @@ jobs:
|
||||||
uses: ./.github/workflows/actions/run_tests
|
uses: ./.github/workflows/actions/run_tests
|
||||||
with:
|
with:
|
||||||
gtest_args: ${{matrix.gtest_args}}
|
gtest_args: ${{matrix.gtest_args}}
|
||||||
extra_env_vars: ${{matrix.extra_env_vars_for_test}}
|
extra_env_vars: ${{matrix.extra_env_vars_for_test}}
|
||||||
|
|
|
@ -8,15 +8,19 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
CXX=clang++-9
|
||||||
|
CC=clang-9
|
||||||
|
SCRIPT=run-clang-tidy-9.py
|
||||||
|
|
||||||
export NUMCORES=`nproc` && if [ ! -n "$NUMCORES" ]; then export NUMCORES=`sysctl -n hw.ncpu`; fi
|
export NUMCORES=`nproc` && if [ ! -n "$NUMCORES" ]; then export NUMCORES=`sysctl -n hw.ncpu`; fi
|
||||||
echo Using ${NUMCORES} cores
|
echo Using ${NUMCORES} cores
|
||||||
|
|
||||||
# Run cmake in current working directory, but on source that is in the same directory as this script file
|
# Run cmake in current working directory, but on source that is in the same directory as this script file
|
||||||
cmake -DBUILD_TESTING=on -DCMAKE_EXPORT_COMPILE_COMMANDS=ON "${0%/*}"
|
cmake -DBUILD_TESTING=on -DCMAKE_CXX_COMPILER=${CXX} -DCMAKE_C_COMPILER=${CC} -DCMAKE_EXPORT_COMPILE_COMMANDS=ON "${0%/*}"
|
||||||
|
|
||||||
# Filter all third party code from the compilation database
|
# Filter all third party code from the compilation database
|
||||||
cat compile_commands.json|jq "map(select(.file | test(\"^$(realpath ${0%/*})/(src|test)/.*$\")))" > compile_commands2.json
|
cat compile_commands.json|jq "map(select(.file | test(\"^$(realpath ${0%/*})/(src|test)/.*$\")))" > compile_commands2.json
|
||||||
rm compile_commands.json
|
rm compile_commands.json
|
||||||
mv compile_commands2.json compile_commands.json
|
mv compile_commands2.json compile_commands.json
|
||||||
|
|
||||||
run-clang-tidy-9.py -j${NUMCORES} -quiet -header-filter "$(realpath ${0%/*})/(src|test)/.*" $@
|
${SCRIPT} -j${NUMCORES} -quiet -header-filter "$(realpath ${0%/*})/(src|test)/.*" $@
|
||||||
|
|
Loading…
Reference in New Issue