[clang-tools-extra] [run-clang-tidy] Accept export directory if PyYAML is not installed (PR #69700)
Amadeus Gebauer via cfe-commits
cfe-commits at lists.llvm.org
Fri Oct 20 02:34:00 PDT 2023
https://github.com/amgebauer created https://github.com/llvm/llvm-project/pull/69700
If PyYAML is not installed, the `-export-fixes` can be used to specify a directory (not a file).
Follows #69453
>From 947b71ca6498f33332783f2b701ad8d03d63779e Mon Sep 17 00:00:00 2001
From: Amadeus Gebauer <amadeus.gebauer at tum.de>
Date: Fri, 20 Oct 2023 11:27:17 +0200
Subject: [PATCH] [run-clang-tidy] Accept export directory if PyYAML is not
installed
If yaml is not installed, the -export-fixes can be used to specify
a directory (not a file).
Follows !69453
---
.../clang-tidy/tool/clang-tidy-diff.py | 16 +++++++++++++++-
.../clang-tidy/tool/run-clang-tidy.py | 16 +++++++++++++++-
2 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py b/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
index 6fb5eedf06d5dff..8817e2914f6e25b 100755
--- a/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
+++ b/clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py
@@ -187,6 +187,15 @@ def main():
"parameter is a directory, the fixes of each compilation unit are "
"stored in individual yaml files in the directory.",
)
+ else:
+ parser.add_argument(
+ "-export-fixes",
+ metavar="DIRECTORY",
+ dest="export_fixes",
+ help="A directory to store suggested fixes in, which can be applied "
+ "with clang-apply-replacements. The fixes of each compilation unit are "
+ "stored in individual yaml files in the directory.",
+ )
parser.add_argument(
"-extra-arg",
dest="extra_arg",
@@ -270,7 +279,12 @@ def main():
):
os.makedirs(args.export_fixes)
- if not os.path.isdir(args.export_fixes) and yaml:
+ if not os.path.isdir(args.export_fixes):
+ if not yaml:
+ raise RuntimeError(
+ "Cannot combine fixes in one yaml file. Either install PyYAML or specify an output directory."
+ )
+
combine_fixes = True
if os.path.isdir(args.export_fixes):
diff --git a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
index aa628aa87800693..179759216196f88 100755
--- a/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
+++ b/clang-tools-extra/clang-tidy/tool/run-clang-tidy.py
@@ -315,6 +315,15 @@ def main():
"parameter is a directory, the fixes of each compilation unit are "
"stored in individual yaml files in the directory.",
)
+ else:
+ parser.add_argument(
+ "-export-fixes",
+ metavar="directory",
+ dest="export_fixes",
+ help="A directory to store suggested fixes in, which can be applied "
+ "with clang-apply-replacements. The fixes of each compilation unit are "
+ "stored in individual yaml files in the directory.",
+ )
parser.add_argument(
"-j",
type=int,
@@ -401,7 +410,12 @@ def main():
):
os.makedirs(args.export_fixes)
- if not os.path.isdir(args.export_fixes) and yaml:
+ if not os.path.isdir(args.export_fixes):
+ if not yaml:
+ raise RuntimeError(
+ "Cannot combine fixes in one yaml file. Either install PyYAML or specify an output directory."
+ )
+
combine_fixes = True
if os.path.isdir(args.export_fixes):
More information about the cfe-commits
mailing list