| # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Paths to common resources in the Chrome repository.""" |
| |
| import os |
| |
| |
| _THIS_DIR = os.path.abspath(os.path.dirname(__file__)) |
| |
| |
| def GetSrc(): |
| """Returns the path to the root src directory.""" |
| return os.path.abspath(os.path.join(_THIS_DIR, os.pardir, os.pardir, |
| os.pardir)) |
| |
| |
| def GetTestData(): |
| """Returns the path to the src/chrome/test/data directory.""" |
| return os.path.join(GetSrc(), 'chrome', 'test', 'data') |
| |
| |
| def GetBuildDir(required_paths): |
| """Returns the preferred build directory that contains given paths.""" |
| dirs = ['out', 'build', 'xcodebuild'] |
| rel_dirs = [os.path.join(x, 'Release') for x in dirs] |
| debug_dirs = [os.path.join(x, 'Debug') for x in dirs] |
| full_dirs = [os.path.join(GetSrc(), x) for x in rel_dirs + debug_dirs] |
| for build_dir in full_dirs: |
| for required_path in required_paths: |
| if not os.path.exists(os.path.join(build_dir, required_path)): |
| break |
| else: |
| return build_dir |
| raise RuntimeError('Cannot find build directory containing ' + |
| ', '.join(required_paths)) |