Index: build/android/gyp/util/build_utils.py |
diff --git a/build/android/gyp/util/build_utils.py b/build/android/gyp/util/build_utils.py |
index 8b374e6f11ecabe33a89201e169d2a6436f40e90..98d9f1b51125bc2a5ef57bedc9a988f93e10b7bd 100644 |
--- a/build/android/gyp/util/build_utils.py |
+++ b/build/android/gyp/util/build_utils.py |
@@ -423,12 +423,17 @@ def AddDepfileOption(parser): |
help='Path to depfile. Must be specified as the action\'s first output.') |
-def WriteDepfile(path, dependencies): |
- MakeDirectory(os.path.dirname(path)) |
- with open(path, 'w') as depfile: |
- depfile.write(path) |
+def WriteDepfile(depfile_path, first_gn_output, inputs=None, add_pydeps=True): |
+ assert depfile_path != first_gn_output # http://crbug.com/646165 |
+ inputs = inputs or [] |
+ if add_pydeps: |
+ inputs = GetPythonDependencies() + inputs |
+ MakeDirectory(os.path.dirname(depfile_path)) |
+ # Ninja does not support multiple outputs in depfiles. |
+ with open(depfile_path, 'w') as depfile: |
+ depfile.write(first_gn_output.replace(' ', '\\ ')) |
depfile.write(': ') |
- depfile.write(' '.join(dependencies)) |
+ depfile.write(' '.join(i.replace(' ', '\\ ') for i in inputs)) |
depfile.write('\n') |
@@ -524,7 +529,8 @@ def CallAndWriteDepfileIfStale(function, options, record_path=None, |
all_depfile_deps = list(python_deps) |
if depfile_deps: |
all_depfile_deps.extend(depfile_deps) |
- WriteDepfile(options.depfile, all_depfile_deps) |
+ WriteDepfile(options.depfile, output_paths[0], all_depfile_deps, |
+ add_pydeps=False) |
if stamp_file: |
Touch(stamp_file) |