When dynamic libraries are built in parallel, Xcode provides a mapping for virtual file system (-vfsoverlay argument) because some dependency files may not be ready yet, e.g. prepared .framework and compilers should look into "temporary" locations. Because these temporary locations are reported as dependencies, their absolute paths might leak to a meta json. Reported in #59
Solution
In XCRemoteCache, we can respect overlay mappings and every time swiftc or clang compilers report a dependency on a file from an overlay, we can map it to the "final" destination. The first step is to read the json file that Xcode generates.
Part I of the Virtual File System Support
Problem:
When dynamic libraries are built in parallel, Xcode provides a mapping for virtual file system (
-vfsoverlay
argument) because some dependency files may not be ready yet, e.g. prepared.framework
and compilers should look into "temporary" locations. Because these temporary locations are reported as dependencies, their absolute paths might leak to a meta json. Reported in #59Solution
In XCRemoteCache, we can respect overlay mappings and every time swiftc or clang compilers report a dependency on a file from an overlay, we can map it to the "final" destination. The first step is to read the json file that Xcode generates.