summaryrefslogtreecommitdiff
path: root/mesonbuild/scripts/clippy.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-12-30 09:54:16 +0100
committerJussi Pakkanen <jpakkane@gmail.com>2025-01-08 12:07:31 +0200
commit04067fcad7fbf6cfbf1b8656caa8ec51e217e321 (patch)
treec27356a28e3528489cd1d567e1b5d7d1a15f41d5 /mesonbuild/scripts/clippy.py
parent211f1cae3a9b398073695fd8da6be9dae9566579 (diff)
downloadmeson-04067fcad7fbf6cfbf1b8656caa8ec51e217e321.tar.gz
clippy: skip running it if --cap-lints allow is included in the command line
Meson builds libraries before running clippy, thus all dependencies must be present and clippy is run only for the warnings (instead, Cargo treats clippy as a separate toolchain and builds everything). In Meson's case thus it is pointless to run clippy whenever --cap-lints allow is included in the command line. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/scripts/clippy.py')
-rw-r--r--mesonbuild/scripts/clippy.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/mesonbuild/scripts/clippy.py b/mesonbuild/scripts/clippy.py
index a5161462c..c4746e3fd 100644
--- a/mesonbuild/scripts/clippy.py
+++ b/mesonbuild/scripts/clippy.py
@@ -41,15 +41,24 @@ class ClippyDriver:
cmdlist = list(clippy)
prev = None
+ lints_cap = None
for arg in src_block['parameters']:
- if prev:
+ if prev == '--cap-lints':
+ cmdlist.append(prev)
+ lints_cap = arg
+ prev = None
+ elif prev:
prev = None
continue
- elif arg in {'--emit', '--out-dir'}:
+ if arg in {'--emit', '--out-dir', '--cap-lints'}:
prev = arg
else:
cmdlist.append(arg)
+ # no use in running clippy if it wouldn't print anything anyway
+ if lints_cap == 'allow':
+ break
+
cmdlist.extend(src_block['sources'])
# the default for --emit is to go all the way to linking,
# and --emit dep-info= is not enough for clippy to do