cclash do not find the include files
mhandb opened this issue · comments
When the VS localization is not English. CLash will not find the include files. Because it looks for the "Note: including file" to identify an include file. But this string is localized.
CClash should use another way to list the include files.
- Look Inside the Debug Information (in the obj or pdb). They contains the list of files.
- Use a CreateFile Hook to catch every files opened by cl.exe
/showincludes is not optimal because it disables the /MP option
Or by using Tracker.exe.
Actually MSBuild use Tracker.exe to track the input files of a cl or link.
What we can do is look for the parent process. If Tracker.exe is the parent of cl then just read its outputs.
If cl.exe is not a child of tracker.exe we can call cl.exe through tracker.exe
Thank-you. I'll have a look into those. CreateFile might work best I think.
Tracker looks like it might be useful!
Cclash will now use tracker instead of /showinclude if you set CCLASH_TRACKER_MODE=yes in your environment. It is about 15% slower than /showinclude but might solve your problem
I'm closing this, tracker mode should solve this sort of rare problem.