Looking at this finally after 7+ months ... As far as I can tell, it looks like Reilly's diagnosis was basically correct.
If you modify the source_set() to have the manifests as inputs, they show up in the ninja file as order-only dependencies, and that's not the right way to treat them (they need to be regular dependencies so that the ninja action executes when the manifests change.
I played with a couple of different attempts at trying to hack something together that worked (including changing the source_set to an action(), but I couldn't get anything to work and the hacks wouldn't have made sense anyways. So, I agree with what Scott wrote, earlier: I think this needs a change in GN, something like an `ld_inputs` that could get propagated up into the link. Does anyone think such an extension would be a bad idea? I'm not sure what the priority on this is, but it seems like we could at least implement it without any compatibility risks.
(I seem to recall other situations where it would've been helpful to have that functionality, too).
-- Dirk