<blockquote class="webkit-indent-blockquote" style="margin: 0 0 0 40px; border: none; padding: 0px;">On Fri, May 6, 2011 at 3:02 PM, Nico Weber <<a href="mailto:thakis@chromium.org">thakis@chromium.org</a>> wrote:<br>
Take a look at llvm/tools/clang/examples/Tooling/ClangCheck.cpp</blockquote><div><div><br></div><div>Thank you Nico!</div><div><br></div><div>could you elaborate... would I put the C++ source to be compiled in the JsonDatabase  MemoryBuffer? </div>
<div><br></div><div>Jason</div><div><br></div></div><div>Examining the code from examples/Tooling/ClangCheck.cpp...</div><div><br></div><div>int main(int argc, char **argv) {</div><div>...</div><div>  llvm::OwningPtr<llvm::MemoryBuffer> JsonDatabase;  # line </div>
<div><br></div><div>  llvm::SmallString<1024> JsonDatabasePath(argv[1]);</div><div><br></div><div>  llvm::sys::path::append(JsonDatabasePath, "compile_commands.json");</div><div><br></div><div>  llvm::error_code Result =</div>
<div>      llvm::MemoryBuffer::getFile(JsonDatabasePath, JsonDatabase);</div><div><br></div><div>...</div><div><br></div><div>    clang::tooling::CompileCommand LookupResult =</div><div>        clang::tooling::FindCompileArgsInJsonDatabase(</div>
<div>            File.str(), JsonDatabase->getBuffer(), ErrorMessage);</div><div>...</div><div>    if (!LookupResult.CommandLine.empty()) {</div><div>      if (!clang::tooling::RunToolWithFlags(</div><div>               new clang::SyntaxOnlyAction,</div>
<div>               LookupResult.CommandLine.size(),</div><div>               clang::tooling::CommandLineToArgv(</div><div>                   &LookupResult.CommandLine).data())) {</div><div><br></div><div>        llvm::outs() << "Error while processing " << File << ".\n";</div>
<div>      }</div><div>    } else {</div><div>      llvm::outs() << "Skipping " << File << ". Command line not found.\n";</div><div>    }</div><div>  }</div><div>  return 0;</div><div>
}</div><div><br></div><div><br></div><br><div class="gmail_quote">On Fri, May 6, 2011 at 3:02 PM, Nico Weber <span dir="ltr"><<a href="mailto:thakis@chromium.org">thakis@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Take a look at llvm/tools/clang/examples/Tooling/ClangCheck.cpp<br>
<br>
Nico<br>
<div><div></div><div class="h5"><br>
On Fri, May 6, 2011 at 12:56 PM, Jason E. Aten <<a href="mailto:j.e.aten@gmail.com">j.e.aten@gmail.com</a>> wrote:<br>
> I'm looking at the examples/clang-interpreter example.  I'd like to expand<br>
> the interpreter a little.<br>
><br>
> It looks like it currently only reads from a file.  Is it possible to have<br>
> clang compile from a memory buffer?  And to a memory buffer?<br>
><br>
> Thank you!<br>
><br>
> Jason<br>
><br>
> --<br>
> Jason E. Aten, Ph.D.<br>
><br>
><br>
><br>
</div></div>> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
><br>
><br>
</blockquote></div><br><br clear="all"><br>-- <br>Jason E. Aten, Ph.D.<br><br><br>