-
Notifications
You must be signed in to change notification settings - Fork 54
Description
Hi! I've been using xwin as part of edge-compiling a legacy C++ project and ran into challenges with symlinks on a case-sensitive filesystem.
I explored an alternative approach that avoids symlinks entirely -- having xwin generate a vfsoverlay.json file for use with Clang's -ivfsoverlay option.
The Feature (from my prototype):
This change adds a new command-line flag,
--vfsoverlay, to thexwin splatcommand. When this flag is used,xwinwill not create any filesystem symlinks. Instead, it will generate avfsoverlay.jsonfile in the root of the splat output directory. This file contains all the file path mappings that would have been created as symlinks.This feature is critical for using
xwinin non-linux environments where creating symlinks is not possible or desired, such as on standard Windows installations on a case-sensitive filesystem (without administrator rights or Developer Mode enabled).
Proof-of-Concept:
I have a working prototype of this feature in my dev-fork:
I've verified that it solves my immediate need. The patch history includes the initial implementation (largely AI-assisted by google-labs-jules[bot], as seen in the commits) as well as several manual fix-ups and refinements from my own testing.
Next Steps (No Obligation):
I'm opening this as an issue for discussion rather than a direct PR. I'm not yet an avid Rust developer or in a position to champion this through to a production-ready feature.
However, I wanted to share this R&D in case the idea is useful to you or others. If it aligns with the project's goals, feel free to use any part of the proof-of-concept as a starting point.
Thanks for maintaining xwin!