| Index: gclient_utils.py
|
| diff --git a/gclient_utils.py b/gclient_utils.py
|
| index e8d916e78d5d2a8aeba4cbf61bebf7b64ad79084..a21e65a5fc31c5d01af67dc395f1ea65fabea86d 100644
|
| --- a/gclient_utils.py
|
| +++ b/gclient_utils.py
|
| @@ -681,7 +681,10 @@ def GetBuildtoolsPath():
|
| 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')
|
| +
|
| + # Some projects' top directory is not named 'src'.
|
| + source_dir_name = GetGClientPrimarySolutionName(gclient_root) or 'src'
|
| + return os.path.join(gclient_root, source_dir_name, 'buildtools')
|
|
|
|
|
| def GetBuildtoolsPlatformBinaryPath():
|
| @@ -713,6 +716,17 @@ def GetExeSuffix():
|
| return ''
|
|
|
|
|
| +def GetGClientPrimarySolutionName(gclient_root_dir_path):
|
| + """Returns the name of the primary solution in the .gclient file specified."""
|
| + gclient_config_file = os.path.join(gclient_root_dir_path, '.gclient')
|
| + env = {}
|
| + execfile(gclient_config_file, env)
|
| + solutions = env.get('solutions', [])
|
| + if solutions:
|
| + return solutions[0].get('name')
|
| + return None
|
| +
|
| +
|
| def GetGClientRootAndEntries(path=None):
|
| """Returns the gclient root and the dict of entries."""
|
| config_file = '.gclient_entries'
|
|
|