summaryrefslogtreecommitdiff
path: root/mesonbuild/backend/ninjabackend.py
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2025-12-22 19:52:56 -0500
committerJohn Turner <jturner.usa@gmail.com>2025-12-22 19:52:56 -0500
commit124f237c9e8c0a09737571aac92095461a2c689d (patch)
tree109d12f4d49643d51d585dd7855fdc0c58b20398 /mesonbuild/backend/ninjabackend.py
parent8e53ca4b796242a4fc366a263fab3adecf5e7151 (diff)
parent651fe54d12f07dd98ff94f8a8cea2469e746a590 (diff)
downloadmeson-124f237c9e8c0a09737571aac92095461a2c689d.tar.gz
Merge branch 'clippy-json'
Diffstat (limited to 'mesonbuild/backend/ninjabackend.py')
-rw-r--r--mesonbuild/backend/ninjabackend.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/mesonbuild/backend/ninjabackend.py b/mesonbuild/backend/ninjabackend.py
index 24d917343..f6139127d 100644
--- a/mesonbuild/backend/ninjabackend.py
+++ b/mesonbuild/backend/ninjabackend.py
@@ -3947,6 +3947,28 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485'''))
elem.add_dep(list(self.all_structured_sources))
self.add_build(elem)
+ def generate_clippy_json_prereq(self) -> None:
+ if 'clippy-json-prereq' in self.all_outputs or not self.have_language('rust'):
+ return
+
+ elem = self.create_phony_target('clippy-json-prereq', 'CUSTOM_COMMAND', 'PHONY')
+ for crate in self.rust_crates.values():
+ if crate.crate_type in {'rlib', 'dylib', 'proc-macro'}:
+ elem.add_dep(crate.target_name)
+ elem.add_dep(list(self.all_structured_sources))
+ self.add_build(elem)
+
+ def generate_clippy_json(self) -> None:
+ if 'clippy-json' in self.all_outputs or not self.have_language('rust'):
+ return
+
+ cmd = self.environment.get_build_command() + \
+ ['--internal', 'clippy', self.environment.build_dir, '--error-format=json']
+ elem = self.create_phony_target('clippy-json', 'CUSTOM_COMMAND', 'PHONY')
+ elem.add_item('COMMAND', cmd)
+ elem.add_item('pool', 'console')
+ self.add_build(elem)
+
def generate_rustdoc(self) -> None:
if 'rustdoc' in self.all_outputs or not self.have_language('rust'):
return
@@ -4036,6 +4058,8 @@ https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47485'''))
self.generate_clangformat()
self.generate_clangtidy()
self.generate_clippy()
+ self.generate_clippy_json_prereq()
+ self.generate_clippy_json()
self.generate_rustdoc()
self.generate_tags('etags', 'TAGS')
self.generate_tags('ctags', 'ctags')