see:
- https://ninja-build.org/manual.html#ref_dependencies
- https://fuchsia.dev/fuchsia-src/development/build/ninja_how#order-only_inputs
- https://github.com/ninja-build/ninja/blob/d60673d49e4facef8579eebeb818318c5b744b0b/src/graph.h#L239-L240
- https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html
semantics of order-only deps:
- when deciding whether to rebuild a target, the mtimes (or existence) of order-only deps are not considered
- if the target is built (i.e. due to a normal prereq that was newer), it will wait on order-only deps
- even if the target is not built (i.e. up to date), order-only deps will be scheduled for building (if out of date)