Chinmay Garde 5896cefa18
[Impeller] Make incremental builds faster when tinkering on the compiler. (#167492)
GN set the Ninja `restat` argument to 1 by default. Which means that it
notes the modification timestamp when writing the contents. Its man page
states "Scripts can improve build performance by taking care not to
change the timstamp of the output file(s) if the contents have not
changed.".

Modifying the compiler will now still re-compile shaders. But if the
shaders have not changed, downstream edges will be culled.

This can be observed in the Ninja progress update after this change.
After editing any file in the compiler, Ninja start out with `(2/866)
LINK ./impellerc`. But as it culls edges, it skips tasks and ends with
`(454/455) ACTION //flutter/...`. Around half the edges are culled. More
importantly, the unit-tests edges are culled as well. For workflows
where only the changed tests are run, this saves a ton of test time in
addition to build time.
2025-04-23 17:36:20 +00:00
..

Flutter Engine

Setting up the Engine development environment

See here

gclient bootstrap

Flutter engine uses gclient to manage dependencies.

If you've already cloned the flutter repository:

  1. Copy one of the engine/scripts/*.gclient to the root folder as .gclient:
    1. Googlers: copy rbe.gclient to enable faster builds with RBE
    2. Everyone else: copy standard.gclient
  2. run gclient sync from the root folder