<< 10/18 >>
First Last

How does kati check if build.ninja is up-to-date?

Kati re-generates build.ninja when either of the followings has been changed:

The last one is tricky. $(shell find ...) is slow (~18 secs in total). Initializing the find emulator takes 1 or 2 secs.

Solution: When kati generates build.ninja, kati records the timestamps of directories traversed by find commands. When kati checks if re-generation is necessary, kati runs find commands only when the timestamps of these directories have been changed.