Commit aaee92f1 authored by jochen@chromium.org's avatar jochen@chromium.org

Change clang_format.py to search for clang-format in buildtools

BUG=none
R=brettw@chromium.org,nick@chromium.org

Review URL: https://codereview.chromium.org/356733002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@280971 0039d316-1c4b-4281-b951-d872f2087c98
parent 76ce73c7
......@@ -23,22 +23,14 @@ class NotFoundError(Exception):
' %s' % e)
def _FindChromiumSourceRoot():
"""Return the source root of the current chromium checkout, or die trying."""
# The use of .gn is somewhat incongruous here, but we need a file uniquely
# existing at src/. GN does the same thing at least.
source_root = gclient_utils.FindFileUpwards('.gn')
if not source_root:
raise NotFoundError(
'.gn file not found in any parent of the current path.')
return source_root
def FindClangFormatToolInChromiumTree():
"""Return a path to the clang-format executable, or die trying."""
tool_path = os.path.join(_FindChromiumSourceRoot(), 'third_party',
'clang_format', 'bin',
gclient_utils.GetMacWinOrLinux(),
bin_path = gclient_utils.GetBuildtoolsPlatformBinaryPath()
if not bin_path:
raise NotFoundError(
'Could not find checkout in any parent of the current path.')
tool_path = os.path.join(bin_path,
'clang-format' + gclient_utils.GetExeSuffix())
if not os.path.exists(tool_path):
raise NotFoundError('File does not exist: %s' % tool_path)
......@@ -47,8 +39,11 @@ def FindClangFormatToolInChromiumTree():
def FindClangFormatScriptInChromiumTree(script_name):
"""Return a path to a clang-format helper script, or die trying."""
script_path = os.path.join(_FindChromiumSourceRoot(), 'third_party',
'clang_format', 'script', script_name)
tools_path = gclient_utils.GetBuildtoolsPath()
if not tools_path:
raise NotFoundError(
'Could not find checkout in any parent of the current path.')
script_path = os.path.join(tools_path, 'clang_format', 'script', script_name)
if not os.path.exists(script_path):
raise NotFoundError('File does not exist: %s' % script_path)
return script_path
......
......@@ -655,6 +655,19 @@ def GetBuildtoolsPath():
This is based on the root of the checkout containing the current directory."""
gclient_root = FindGclientRoot(os.getcwd())
if not gclient_root:
# Some projects might not use .gclient. Try to see whether we're in a git
# checkout.
top_dir = [os.getcwd()]
def filter_fn(line):
top_dir[0] = os.path.normpath(line.rstrip('\n'))
try:
CheckCallAndFilter(["git", "rev-parse", "--show-toplevel"],
print_stdout=False, filter_fn=filter_fn)
except Exception:
pass
top_dir = top_dir[0]
if os.path.exists(os.path.join(top_dir, 'buildtools')):
return os.path.join(top_dir, 'buildtools')
return None
return os.path.join(gclient_root, 'src', 'buildtools')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment