Hi Jeffrey,

On 27 Aug 2014, at 17:59 , Jeffrey Melville <jmelvi...@mitre.org> wrote:

> 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.

I'm afraid it is not enough to directly pinpoint the problem.
Some questions:
- does the issue occur with just one tag file, and one project using it, or is 
there
  a chain of tag files, where also projectA imports tag files?
- is a symbol with the same name as the one that is not correctly appearing
  in projectA's tag file (i.e. foo), also in some other tag file?

If you want to see places in the code where information is written to the tag 
file,
look for "Doxygen::tagFile" in the source code. For member information look in
src/memberdef.cpp

Regards,
  Dimitri

> 
> 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


------------------------------------------------------------------------------
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