I’ve made some progress in that direction, but I’m not done yet, and I have some hard time putting it all together, so I’m thinking I may be missing something obvious. So I’d like to describe what I’ve done so far:
I gave up using a
to run the preprocessing step, it just did not work. Instead, I’m creating a
CompilerInvocation and pass it to a custom
FrontendActionFactory that returns a
This sort of works (assuming I pass to the
CompilerInvocation all the arguments equivalent to the ones I pass to the
ClangTool that I use later). But then, when I have any error in the PCH code, the PCH is not saved on disk (for what I do,
I really don’t mind having incomplete results, so I’d like to save it anyway)
So I created a new action that inherits from
GeneratePCHAction but in
CreateASTConsumer has the same code as its base class, but uses true instead of false for the argument
AllowASTWithErrors of the
PCHGenerator constructor. But still, the PCH file does not get generated in case of errors.
Do you think I’m going in the right direction? Do you have any idea what I should do to achieve my goal?
I’ve got another question: Many tooling function have a
argument. Does it mean I could use a PCH in memory without ever saving it to the disk, or is if just to be used for modules, as the documentation seems to imply? Do you have any hint about how this can be used?
De : cfe-dev [mailto:[hidden email]]
De la part de Loïc Joly via cfe-dev Envoyé : lundi 7 août 2017 20:39 À :[hidden email] Objet : [cfe-dev] Using precompiled headers with libtooling?
We are using clang libtooling, and we think about enabling precompiled headers to speed-up our processing, but I’ve not found any document about that, so I have a few questions:
If we do so, will the content of the pch be visited with a RecursiveASTVisitor? With an ast matcher?
Will code location inside the PCH refer to the files that generated the pch?
Are there any other caveat?
Is there a tool to generate the pch with an interface similar to ClangTool, or should I just spawn a sub process the create the pch before starting the tool?