<div dir="ltr"><div>Hello Daniel,</div><div><br></div>Maybe you'd like to check Mozilla's DXR project [1] that indexes C and C++ code and provides a web interface to view and search code. It's not as accurate as Google's code search [2] for some templates, but DXR could be used as a reference because it's open source.<div><br></div><div>[1]</div><div><a href="https://github.com/mozilla/dxr">https://github.com/mozilla/dxr</a><br></div><div><a href="https://github.com/mozilla/dxr/blob/master/dxr/plugins/clang/dxr-index.cpp">https://github.com/mozilla/dxr/blob/master/dxr/plugins/clang/dxr-index.cpp</a><br></div><div><br></div><div>[2] <a href="https://code.google.com/p/chromium/codesearch">https://code.google.com/p/chromium/codesearch</a></div><div><br></div><div>- Jingyi</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-10-03 8:30 GMT-04:00 Oberhoff, Daniel via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That’s interesting. I really have to check how rtags does this. It is fed with compilation commands for .o files (i.e. usually one per .cpp file). But I don’t know what it does for headers. I will get back once I have this figured out.<br>
<br>
Thanks for answering.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
> On Oct 2, 2015, at 10:19 PM, Luke Zarko <<a href="mailto:zarko@google.com">zarko@google.com</a>> wrote:<br>
><br>
> Indexing a C++ project will produce a lot of data. It's difficult to tell when you're doing redundant work; for example, if two source files include the same header, it's not obvious whether the content of the header can be processed only once. As Manuel indicates, modules should help with this by limiting preprocessor shenanigans. Even then, you could still be in trouble if the header contains template definitions, since these are instantiated on demand (and your source files might make different demands). We're looking at various ways to deal with this problem for Kythe, where we spend most of our C++ processing time not in Clang but instead in handling the raw output from our indexing tool. I think that you'd end up in the same situation (except maybe for very small codebases, or if your data model doesn't store much detail)--you might get your index pieces for free, but the dominant cost of merging them all together will remain.<br>
><br>
<br>
</div></div><br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>