All,

I'm working on two closely related source trees that generate Doxygen 
separately. To cross-link the Doxygen HTML, we just started using 
GENERATE_TAGFILE and TAGFILES for ProjectA and Project B respectively.

I noticed that some functions are missing from the tag file in 1.8.6, 
1.8.8, and the current git head. The tag file is complete when I 
generate it with 1.8.2. The was a similar thread 
(http://doxygen.10944.n7.nabble.com/Tag-files-and-linking-to-variables-td5788.html)
 
that referenced this bug: 
(https://bugzilla.gnome.org/show_bug.cgi?id=694376). The bug was 
supposed to be fixed in 1.8.4 but I am still seeing my issue.

It seems to involve hierarchies similar to the one below. In the actual 
codebase, all members are documented but I ommitted the documentation 
here for brevity.

The tag file only includes private members of class A (i.e. foo is not 
listed). In one case,
the tag file for a B-style class even includes the function ~A().

This is problematic because the ProjectB documentation for class C does 
not properly link to the overridden function in ProjectA.

If I generate the tag file for ProjectA using Doxygen 1.8.2, then build 
the Doxygen for ProjectB with Doxygen 1.8.6 using that tag file, 
everything is fine. We have some compatibility issues with the rest of 
the Doxyfile with 1.8.2.

Unfortunately, I haven't been able to replicate the problem with a 
simple test case like this one. It only occurs with the full codebase, 
which I am unable to provide.

Is this enough for anyone to have an idea? I'm not opposed to hacking on 
the Doxygen source code to find a patch but I could use a tip on where 
to start looking.

Cheers,
Jeff


// Class A and B are in ProjectA
class A
{
public:
    virtual ~A() {}
    virtual void foo() {}
protected:
    A() {}
private:
    int a_private;
};

class B : public A
{
public:
     virtual ~B() {}
     virtual void bar() = 0;
protected:
     B() {}
private:
     int b_private;
};

// Class C is in ProjectB
class C : public B
{
public:
     void foo() { /* Do something */ }
     void bar() { /* Do something */ }
};

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to