It is up to the generator to decide how to organize the file paths that appear in the Ninja build plan. For example with GN, the tool will generate relative paths from the build directory to the source tree, i.e. if you do something like `gn gen out/default`, then the file at `out/default/build.ninja` will contain references to source files such as `../../src/foo/foo.cc` directly.
Another example is CMake, which will use absolute paths for source files instead (i.e. /abs/path/to/src/foo/foo.cc) in the build plan, at least in the few examples I looked at.
None of these tool replicate the source tree inside the build directory. This is in general a bad idea (since now you need to ensure, on each invocation, that your replication is in sync with whatever changed in the source tree).
Hope this helps,
- Digit