<html>
<head></head>
<body>
<p>Sorry about the format of the previous message. I write it again here.</p>
<br/>
<p>Sorry, Jacob, no idea on how to use your solution in my code. Manuel, nothing is written in your message I think...<br/>
My code is something like this:</p>
<p>static cl::OptionCategory MyToolCategory("My tool options");<br /><br /> int main(int argc, const char **argv) {<br />   CommonOptionsParser OptionsParser(argc, argv, MyToolCategory);   <br />   ClangTool Tool(OptionsParser.getCompilations(),                  <br />   OptionsParser.getSourcePathList());   <br />   return Tool.run(newFrontendActionFactory<SyntaxOnlyAction>().get()); <br />}</p>
<p>What I was doing by the moment is to process argv before creating the object OptionsParser and then include internal Clang headers, but I guess I can't do that when using Json compilation database. Could you help me with that? Otherwise, is there a way to ship in the executable all the necessary headers so that the user does not require to have clang installed?</p>
<br/>
<p>Thanks.</p><br><br><div><em>El día 26 feb 2016 14:03, Pedro Delgado Perez <pedro.delgadoperez@mail.uca.es> escribió:</em></div><blockquote class="replyBlock" style="border-left: 2px solid #000044; margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><p><p>Sorry, Jacob, no idea on how to use your solution in my code. Manuel, nothing is written in your message I think...</p>
<p>My code is something like this:</p>
<pre class="fragment"><span class="keyword">static</span> cl::OptionCategory MyToolCategory(<span class="stringliteral">"My tool options"</span>);</pre><pre> int main(int argc, const char **argv) {<br />   <a title="A parser for options common to all command-line Clang tools." href="http://clang.llvm.org/doxygen/classclang_1_1tooling_1_1CommonOptionsParser.html">CommonOptionsParser</a> OptionsParser(argc, argv, MyToolCategory);   <a title="Utility to run a FrontendAction over a set of files." href="http://clang.llvm.org/doxygen/classclang_1_1tooling_1_1ClangTool.html">ClangTool</a> Tool(OptionsParser.getCompilations(),                  OptionsParser.getSourcePathList());   return Tool.<a title="Runs an action over all files specified in the command line." href="http://clang.llvm.org/doxygen/classclang_1_1tooling_1_1ClangTool.html#acec91f63b45ac7ee2d6c94cb9c10dab3">run</a>(newFrontendActionFactory<SyntaxOnlyAction>().get()); }</pre><p>What I was doing by the moment is to process argv before creating the object OptionsParser and then include internal Clang headers, but I guess I can't do that when using Json compilation database. Could you help me with that? Otherwise, is there a way to ship in the executable all the necessary headers so that the user does not require to have clang installed?</p>
<p>Thanks.</p><br><br><div><em>El día 26 feb 2016 10:37, Pedro Delgado Perez <pedro.delgadoperez@mail.uca.es> escribió:</em></div><blockquote class="replyBlock" style="border-left: 2px solid #000044; margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><p><p>Hello,</p>
<p>Perhaps this question has been asked before, but I couldn't find a proper solution for this issue. When I produce an executable and use it in another machine, sometimes Clang is not able to find system header files (for instance "limits.h") because the paths to find these headers are relative to the location of the Clang libraries.</p>
<p>All the same, when I'm using FIXED COMPILATION, I'm able to automatically retrieve the paths to system headers of the machine where the executable is being run. I mean, I retrieve the paths and add them after "--" to the command through the option -isystem. However, when I'm using JSON COMPILATION DATABASE, I can't do that, so in this case I don't know how to solve this issue.</p>
<p>What is the appropriate manner to handle this matter of the paths to system header files?</p>
<p>Thanks.</p><br>
</p></blockquote>
</p></blockquote>
</body>
</html>