Hi ninja-dev,
According to the ninja manual, the phony rule [1] can be used to create aliases for other targets. However, ninja does not currently consider the outputs of a phony edge to be dirty if the edge's inputs have been modified. This appears to have come up a few times over the years in discussion [2] and pull requests [3, 4], but no fix has been merged.
Would such a change still be possible? I think it is a reasonable expectation of the user for targets that depend on a phony target to be rebuilt if one of the phony target's inputs is modified, but obviously this behavior has existed in ninja for a long time now. I've uploaded a new PR [5] that rebases to the latest and addresses some of the outstanding feedback on the last attempt, but I'd also like to solicit from the community whether this might break any existing uses.