Commit d36e945 changed findleaves.py to sort the output files so that
the order is deterministic and won't cause spurious build errors when
files happen to be listed (and hence read) in different order on
e.g. add/remove the makefiles.
This correction broke after commit 4820a94 because the conversion to
a set with set() in order to remove duplicates came after sort() and
potentially altered the order of the elements.
This commit fixes makes sure findleaves.py is guaranteed to return
a sorted filename list without duplicates.
Change-Id: Ifd96d04d45641fe43d4cc4739f78a2d4d25cc212
This cuts the make startup time by about 30 seconds. Python is faster
than bash in this case, and also we can now supply multiple directories
to prune, and skip the .repo directory, which is, uh, big.
This is from my mac laptop:
$ time build/tools/findleaves.sh --prune="./out" . Android.mk > /dev/null
real 0m29.186s
user 0m0.550s
sys 0m5.897s
$ time build/tools/findleaves.py --prune="./out" . Android.mk > /dev/null
real 0m4.701s
user 0m0.645s
sys 0m1.294s
$ time build/tools/findleaves.py --prune="./out" --prune="./.repo" . Android.mk > /dev/null
real 0m0.176s
user 0m0.094s
sys 0m0.080s