sammccall added a comment.

In D112996#3102925 <https://reviews.llvm.org/D112996#3102925>, @ckandeler wrote:

>> WDYT about detecting QT headers specifically? It seems hacky, but I don't 
>> see a way out of this that doesn't involve hardcoding some filenames. Are 
>> they in a directory like `"qt-11/QFoo"` that we can recognize? Even Q 
>> followed by another capital letter might be a good enough heuristic.
>> (The docs suggest it's just `<QFoo>` but the docs also say to use angle 
>> brackets so I'm not sure whether to believe them)
>
> The headers are, as far as I can tell, always located in a directory whose 
> name starts with "Qt". This parent directory is also in the include path, so 
> e.g. to get access to QString, which is located under QtCore/, you'd 
> typically just write:
>
>   #include <QString>
>
> This is the recommended, documented way of pulling in headers.
> Though you could also write:
>
>   #include <QtCore/QString>
>
> as the parent parent directory is also in the list of include paths.
>
> Looking at the code, it seems we have access to the parent directory, so we 
> could do that name check (which I suppose has less potential for false 
> positives than checking the file name).

Yeah, that makes sense to me. Also a bit cheaper since we only have to do this 
once per parent dir.

> For framework builds, the directory would be "Headers", which also seems safe.

I agree extensionless headers in frameworks seem fine to show.
We already know which includepath entries are frameworks, so we can just use 
that info directly (see line 9674)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D112996/new/

https://reviews.llvm.org/D112996

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to