After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 642505 - 1.7.3 finds fewer #include links than 1.7.1 did
1.7.3 finds fewer #include links than 1.7.1 did
Status: RESOLVED DUPLICATE of bug 642475
Product: doxygen
Classification: Other
Component: general
1.7.3
Other Linux
: Normal normal
: ---
Assigned To: Dimitri van Heesch
Dimitri van Heesch
Depends on:
Blocks:
 
 
Reported: 2011-02-16 20:15 UTC by Anthony Foiani
Modified: 2011-02-17 19:04 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Anthony Foiani 2011-02-16 20:15:46 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!
Comment 1 Anthony Foiani 2011-02-17 01:01:02 UTC
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.
Comment 2 Dimitri van Heesch 2011-02-17 19:04:21 UTC
Don't worry. Should be corrected in the next subversion update.

*** This bug has been marked as a duplicate of bug 642475 ***