inorton / cclash

ccache / clcache inspired compiler cache for cl.exe

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.