Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(283)

Side by Side Diff: build/android/gyp/util/build_utils.py

Issue 1730993002: Don't write deps that GN already knows about to .d files (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import ast 5 import ast
6 import contextlib 6 import contextlib
7 import fnmatch 7 import fnmatch
8 import json 8 import json
9 import os 9 import os
10 import pipes 10 import pipes
(...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 expansion = expansion[k] 464 expansion = expansion[k]
465 465
466 new_args[i] = arg[:match.start()] + str(expansion) 466 new_args[i] = arg[:match.start()] + str(expansion)
467 467
468 return new_args 468 return new_args
469 469
470 470
471 def CallAndWriteDepfileIfStale(function, options, record_path=None, 471 def CallAndWriteDepfileIfStale(function, options, record_path=None,
472 input_paths=None, input_strings=None, 472 input_paths=None, input_strings=None,
473 output_paths=None, force=False, 473 output_paths=None, force=False,
474 pass_changes=False): 474 pass_changes=False,
475 depfile_deps=None):
475 """Wraps md5_check.CallAndRecordIfStale() and also writes dep & stamp files. 476 """Wraps md5_check.CallAndRecordIfStale() and also writes dep & stamp files.
476 477
477 Depfiles and stamp files are automatically added to output_paths when present 478 Depfiles and stamp files are automatically added to output_paths when present
478 in the |options| argument. They are then created after |function| is called. 479 in the |options| argument. They are then created after |function| is called.
480
481 By default, only python dependencies are added to the depfile. If there are
482 other input paths that are not captured by GN deps, then they should be listed
483 in depfile_deps. It's important to write paths to the depfile that are already
484 captured by GN deps since GN args can cause GN deps to change, and such
485 changes are not immediately reflected in depfiles (http://crbug.com/589311).
479 """ 486 """
480 if not output_paths: 487 if not output_paths:
481 raise Exception('At least one output_path must be specified.') 488 raise Exception('At least one output_path must be specified.')
482 input_paths = list(input_paths or []) 489 input_paths = list(input_paths or [])
483 input_strings = list(input_strings or []) 490 input_strings = list(input_strings or [])
484 output_paths = list(output_paths or []) 491 output_paths = list(output_paths or [])
485 492
486 python_deps = None 493 python_deps = None
487 if hasattr(options, 'depfile') and options.depfile: 494 if hasattr(options, 'depfile') and options.depfile:
488 python_deps = GetPythonDependencies() 495 python_deps = GetPythonDependencies()
489 # List python deps in input_strings rather than input_paths since the 496 # List python deps in input_strings rather than input_paths since the
490 # contents of them does not change what gets written to the depfile. 497 # contents of them does not change what gets written to the depfile.
491 input_strings += python_deps 498 input_strings += python_deps
492 output_paths += [options.depfile] 499 output_paths += [options.depfile]
493 500
494 stamp_file = hasattr(options, 'stamp') and options.stamp 501 stamp_file = hasattr(options, 'stamp') and options.stamp
495 if stamp_file: 502 if stamp_file:
496 output_paths += [stamp_file] 503 output_paths += [stamp_file]
497 504
498 def on_stale_md5(changes): 505 def on_stale_md5(changes):
499 args = (changes,) if pass_changes else () 506 args = (changes,) if pass_changes else ()
500 function(*args) 507 function(*args)
501 if python_deps is not None: 508 if python_deps is not None:
502 WriteDepfile(options.depfile, python_deps + input_paths) 509 all_depfile_deps = list(python_deps)
jbudorick 2016/03/09 16:31:08 What happened to input_paths?
agrieve 2016/03/11 15:21:13 That's the fix. Have a look at the new comment I a
jbudorick 2016/03/11 15:24:17 definitely skipped right through that comment the
510 if depfile_deps:
511 all_depfile_deps.extend(depfile_deps)
512 WriteDepfile(options.depfile, all_depfile_deps)
503 if stamp_file: 513 if stamp_file:
504 Touch(stamp_file) 514 Touch(stamp_file)
505 515
506 md5_check.CallAndRecordIfStale( 516 md5_check.CallAndRecordIfStale(
507 on_stale_md5, 517 on_stale_md5,
508 record_path=record_path, 518 record_path=record_path,
509 input_paths=input_paths, 519 input_paths=input_paths,
510 input_strings=input_strings, 520 input_strings=input_strings,
511 output_paths=output_paths, 521 output_paths=output_paths,
512 force=force, 522 force=force,
513 pass_changes=True) 523 pass_changes=True)
514 524
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698