| Index: tools/binary_size/libsupersize/paths.py
|
| diff --git a/tools/binary_size/libsupersize/paths.py b/tools/binary_size/libsupersize/paths.py
|
| index bf877cb6f14043df8d10c26e5d28aa4d75b5b28c..dcb7c72c2089593e33abeef2fad11687990294b1 100644
|
| --- a/tools/binary_size/libsupersize/paths.py
|
| +++ b/tools/binary_size/libsupersize/paths.py
|
| @@ -13,13 +13,11 @@ _STATUS_VERIFIED = 2
|
|
|
|
|
| class LazyPaths(object):
|
| - def __init__(self, args=None, tool_prefix=None, output_directory=None,
|
| - input_file=None):
|
| - tool_prefix = tool_prefix or (args and args.tool_prefix)
|
| - output_directory = output_directory or (args and args.output_directory)
|
| + def __init__(self, tool_prefix=None, output_directory=None,
|
| + any_path_within_output_directory=None):
|
| self._tool_prefix = tool_prefix
|
| self._output_directory = output_directory
|
| - self._input_file = input_file
|
| + self._any_path_within_output_directory = any_path_within_output_directory
|
| self._output_directory_status = _STATUS_DETECTED if output_directory else 0
|
| self._tool_prefix_status = _STATUS_DETECTED if tool_prefix else 0
|
|
|
| @@ -64,13 +62,15 @@ class LazyPaths(object):
|
| return tool_prefix
|
|
|
| def _DetectOutputDirectory(self):
|
| - # See if input file is in out/Release.
|
| - abs_path = os.path.abspath(self._input_file)
|
| - release_idx = abs_path.find('Release')
|
| - if release_idx != -1:
|
| - output_directory = abs_path[:release_idx] + 'Release'
|
| - output_directory = os.path.relpath(abs_path[:release_idx] + '/Release')
|
| - return output_directory
|
| + # Try and find build.ninja.
|
| + abs_path = os.path.abspath(self._any_path_within_output_directory)
|
| + while True:
|
| + if os.path.exists(os.path.join(abs_path, 'build.ninja')):
|
| + return os.path.relpath(abs_path)
|
| + parent_dir = os.path.dirname(abs_path)
|
| + if parent_dir == abs_path:
|
| + break
|
| + abs_path = abs_path = parent_dir
|
|
|
| # See if CWD=output directory.
|
| if os.path.exists('build.ninja'):
|
|
|