clang-format: lookup for binary under third_party/clang-format
This change looks for clang-format (and its script) *also*
inside third_party/clang-format (on top of buildtools/$plat).
This is to bring consistency to the recent changes [1] to
gn and ninja wrappers, which now look only in third_party
and not in buildtools/.
This is to make it so that a project can use depot_tools
without requiring both buildtools/ and third_party/
directories.
[1] See https://crrev.com/c/3925341
Bug: b/261398524
Bug: 1340825
Change-Id: I895d244592eed259ab8efa050cc87372d891246c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4079069
Commit-Queue: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Junji Watanabe <jwata@google.com>
diff --git a/clang_format.py b/clang_format.py
index 64f4c6e..4e7b1ba 100755
--- a/clang_format.py
+++ b/clang_format.py
@@ -27,6 +27,14 @@
def FindClangFormatToolInChromiumTree():
"""Return a path to the clang-format executable, or die trying."""
+ primary_solution_path = gclient_paths.GetPrimarySolutionPath()
+ if primary_solution_path:
+ bin_path = os.path.join(primary_solution_path, 'third_party',
+ 'clang-format',
+ 'clang-format' + gclient_paths.GetExeSuffix())
+ if os.path.exists(bin_path):
+ return bin_path
+
bin_path = gclient_paths.GetBuildtoolsPlatformBinaryPath()
if not bin_path:
raise NotFoundError(
@@ -42,6 +50,13 @@
def FindClangFormatScriptInChromiumTree(script_name):
"""Return a path to a clang-format helper script, or die trying."""
+ primary_solution_path = gclient_paths.GetPrimarySolutionPath()
+ if primary_solution_path:
+ script_path = os.path.join(primary_solution_path, 'third_party',
+ 'clang-format', 'script', script_name)
+ if os.path.exists(script_path):
+ return script_path
+
tools_path = gclient_paths.GetBuildtoolsPath()
if not tools_path:
raise NotFoundError(