Add clang-tidy target. Closes #2383.
parent
5a52983f16
commit
d3b389f349
7 changed files with 77 additions and 1 deletions
@ -0,0 +1,8 @@ |
||||
## Clang-tidy target |
||||
|
||||
If `clang-tidy` is installed and the project's source root contains a |
||||
`.clang-tidy` (or `_clang-tidy`) file, Meson will automatically define |
||||
a `clang-tidy` target that runs Clang-Tidy on all source files. |
||||
|
||||
If you have defined your own `clang-tidy` target, Meson will not |
||||
generate its own target. |
@ -0,0 +1,38 @@ |
||||
# Copyright 2019 The Meson development team |
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
|
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
|
||||
import pathlib |
||||
import subprocess |
||||
from concurrent.futures import ThreadPoolExecutor |
||||
|
||||
from ..compilers import lang_suffixes |
||||
|
||||
def clangformat(srcdir_name, builddir_name): |
||||
srcdir = pathlib.Path(srcdir_name) |
||||
suffixes = set(lang_suffixes['c']).union(set(lang_suffixes['cpp'])) |
||||
suffixes.add('h') |
||||
futures = [] |
||||
with ThreadPoolExecutor() as e: |
||||
for f in (x for suff in suffixes for x in srcdir.glob('**/*.' + suff)): |
||||
strf = str(f) |
||||
if strf.startswith(builddir_name): |
||||
continue |
||||
futures.append(e.submit(subprocess.check_call, ['clang-tidy', '-p', builddir_name, strf])) |
||||
[x.result() for x in futures] |
||||
return 0 |
||||
|
||||
def run(args): |
||||
srcdir_name = args[0] |
||||
builddir_name = args[1] |
||||
return clangformat(srcdir_name, builddir_name) |
@ -0,0 +1 @@ |
||||
Checks: '-*,modernize-use-bool-literals' |
@ -0,0 +1,7 @@ |
||||
#include<cstdio> |
||||
|
||||
int main(int, char**) { |
||||
bool intbool = 1; |
||||
printf("Intbool is %d\n", (int)intbool); |
||||
return 0; |
||||
} |
@ -0,0 +1,3 @@ |
||||
project('clangtidytest', 'cpp', default_options: 'cpp_std=c++14') |
||||
|
||||
executable('cttest', 'cttest.cpp') |
Loading…
Reference in new issue