• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2012 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Paths to common resources in the Chrome repository."""
6
7import os
8
9
10_THIS_DIR = os.path.abspath(os.path.dirname(__file__))
11
12
13def GetSrc():
14  """Returns the path to the root src directory."""
15  return os.path.abspath(os.path.join(_THIS_DIR, os.pardir, os.pardir,
16                                      os.pardir))
17
18
19def GetTestData():
20  """Returns the path to the src/chrome/test/data directory."""
21  return os.path.join(GetSrc(), 'chrome', 'test', 'data')
22
23
24def GetBuildDir(required_paths):
25  """Returns the preferred build directory that contains given paths."""
26  dirs = ['out', 'build', 'xcodebuild']
27  rel_dirs = [os.path.join(x, 'Release') for x in dirs]
28  debug_dirs = [os.path.join(x, 'Debug') for x in dirs]
29  full_dirs = [os.path.join(GetSrc(), x) for x in rel_dirs + debug_dirs]
30  for build_dir in full_dirs:
31    for required_path in required_paths:
32      if not os.path.exists(os.path.join(build_dir, required_path)):
33        break
34    else:
35      return build_dir
36  raise RuntimeError('Cannot find build directory containing ' +
37                     ', '.join(required_paths))
38