mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
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.
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: