Darren Chan 6ea64cbb71 [build] Speed up incremental & no-op builds. (flutter/engine#26815)
Per gn documentation, the output timestamp can remain the same if all outputs remain the same, resulting in large time savings since dependent targets don't need to be rebuilt.
See: https://gn.googlesource.com/gn/+/HEAD/docs/reference.md#target-declarations-action_declare-a-target-that-runs-a-script-a-single-time-outputs

Currently, `copy_debug_symbols.py` updates timestamps unconditionally, resulting in slower incremental and no-op builds.
We change its current behavior to not update the timestamps if the debug symbols will not change.

Local testing indicates around a `20s` improvement for no-op and incremental builds:
 - Control: http://go/paste/4800062489100288
 - Experiment: http://go/paste/5727928869453824

See https://fxbug.dev/79001.

CC: @naudzghebre
2021-06-18 19:35:06 -04:00
Languages
Dart 75%
C++ 16.5%
Objective-C++ 2.9%
Java 2.8%
Objective-C 0.7%
Other 1.9%