[cfe-dev] Automating Clang Tool (with CommonOptionsParser)

Alex L via cfe-dev cfe-dev at lists.llvm.org
Wed Dec 7 06:05:37 PST 2016


On 7 December 2016 at 13:52, Sunny Billava via cfe-dev <
cfe-dev at lists.llvm.org> wrote:

> Hello All,
>
> We want to create a tool (in C# .NET, EXE) which invokes the clang tool
> (C++, DLL). While implementing we realized that the CommonOptionsParser
> only expects the call to the Clang tool to be in the form of command line
> options. Is there a way around this issue that someone has encountered
> earlier?
>
>
>
> On the other hand, if I pass the c code as a string buffer to the tooling,
> the included .h files are not recognized by clang tooling. So somehow
> Common Options Parser was the choice.
>
>
>
> int main(int argc, const char **argv) {
>
>
>
> CommonOptionsParser OptionsParser(argc, argv, MyToolCategory);
>
>        ClangTool Tool(OptionsParser.getCompilations(),OptionsParser.
> getSourcePathList());
>
>
>
>        int result = Tool.run(newFrontendActionFactory<DFAMainClassAction
> >().get());
>
> return result;
>
> }
>
>
>
> Any help would be greatly appreciated J
>

I think that you can use pass the arguments as an array of strings to your
DLL and create the tool using the FixedCompilationDatabase, like in the
example below:

   std::vector<std::string> CommandLineArguments = { "-I", "includes" }; //
Get the arguments
   // Create the tool
   std::unique_ptr<CompilationDatabase> Compilations(new
FixedCompilationDatabase(".", CommandLineArguments));
   ClangTool Tool(*Compilations, Filename);


>
>
> Regards,
>
> Sunny. R. Billava
>
>
> This message contains information that may be privileged or confidential
> and is the property of the KPIT Technologies Ltd. It is intended only for
> the person to whom it is addressed. If you are not the intended recipient,
> you are not authorized to read, print, retain copy, disseminate,
> distribute, or use this message or any part thereof. If you receive this
> message in error, please notify the sender immediately and delete all
> copies of this message. KPIT Technologies Ltd. does not accept any
> liability for virus infected mails.
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20161207/497a94bf/attachment.html>


More information about the cfe-dev mailing list