Hi Joost,
Thank you for your analysis up until this point.
In my new role as CDT project lead there are a number of areas that I am simply not familiar with (yet!) and this is one of them.
I can try to provide some background, and I will be very happy to review any patches you provide!
To answer some of your questions:
The LLVM plug-ins were added in Bug
338553 and haven't changed much since then in the particular area of the code you have highlighted.
From a quick look at this it seems there is a confusion in this code between settings passed to the LLVM compiler and those passed to the CDT indexer and which tool is "in charge". In simple cases that difference probably doesn't matter, but it clearly quickly goes wrong (the case in Bug
527757 is particularly obviously bad).
> - Is there any (high level) design documentation available for the LLVM managedbuilder stuff? Or for GCC?
> - Why is there a CDT LLVM preference page? What is/was it's purpose?
I don't know. There may be answers in the Petri's thesis, but the link to it is dead (see
comment).
> There is no such page for GCC?
Because it probably shouldn't exist for LLVM either?
> - I cannot find UI for LLVM/Clang project properties. Can someone
enlighten me?
> - The same for the GCC project properties?
It is in the Project Properties -> C/C++ Build -> Settings. (see attached file to confirm we are talking about the same thing)
Thank you for taking the time to look at this. There is certainly a lot of little bits needed to get a C++ Managed Build project to "just work" and I look forward to supporting you where I can.
Thanks
Jonah