GNOME Bugzilla – Bug 642505
1.7.3 finds fewer #include links than 1.7.1 did
Last modified: 2011-02-17 19:04:21 UTC
I recently upgraded to the fedora 1.7.3-1 package (from 1.7.1-2), and found that the newer version missed quite a few links. E.g., here are two directory dependency graphs from the same code base, same config file: http://scrye.com/~tkil/doxygen/dir-graph-1.7.1.png http://scrye.com/~tkil/doxygen/dir-graph-1.7.3.png This also shows up in the source code listings, where many of my includes are missed. Example headers: #include <iosfwd> #include <memory> #include <string> #include <vector> #include <boost/noncopyable.hpp> #include <boost/shared_ptr.hpp> #include "reading/Measurement.hpp" #include "status/Status.hpp" #include "util/Compat.hpp" #include "util/StringUtils.hpp" #include "util/Timestamp.hpp" #include "DataLocation.hpp" 1.7.1 linked all my project-local (double-quoted) headers, while 1.7.3 only found "status/Status.hpp" and "DataLocation.hpp". It's not consistently finding only those in the same directory, nor only those that are relative. I'm currently experimenting with different settings for INCLUDE_PATH, but since it did work as expected under 1.7.1, I believe this is a bug. Thanks!
Ok, I've poked and prodded at it a bit, and it seems that I'm getting bit by the fact that INCLUDE_PATH is relative to where doxygen is invoked, but file expansion is done relative to the actual source file. So, if I have this arrangement: project/ src/ util/ a.h xml/ foo.c And I compile all my source code with the "-I .." flag, and foo.c has an include like: #include "util/a.h" Then gcc will correctly find the file, but doxygen won't. If I try to set INCLUDE_PATH to be "..", then when I invoke doxygen from "src", it will find everything under "project". I'm working on a patch, but it's a bit ugly since there is a semantic mismatch here.
Don't worry. Should be corrected in the next subversion update. *** This bug has been marked as a duplicate of bug 642475 ***