Re: Problem linking functions/methods with Doxygen

"Paul A. Bristow" <[email protected]> Tue, 6 Aug 2013 15:21:10 +0100
Newsgroups gmane.comp.lib.boost.documentation
Message-ID <[email protected]>

> -----Original Message-----
> From: Boost-docs [mailto:[email protected]] On Behalf Of Paul A. Bristow
> Sent: Monday, August 05, 2013 6:32 PM
> To: 'Discussion of Boost Documentation'
> Subject: Re: [Boost-docs] Problem linking functions/methods with Doxygen
> 
> > -----Original Message-----
> > From: Boost-docs [mailto:[email protected]] On Behalf
> > Of Mathias Gaunard
> > Sent: Monday, August 05, 2013 2:52 PM
> > To: Discussion of Boost Documentation
> > Subject: Re: [Boost-docs] Problem linking functions/methods with
> > Doxygen
> >
> > On 17/07/2013 04:11, Kyle Lutz wrote:
> > > Hi,
> > >
> > > I've recently updated my library [1] to use Doxygen for its
> > > reference documentation instead of BoostBook. The commit is here
> > > [2]. Overall it worked out great but I did encounter a few issues.
> > > The largest is that function linking/referencing now longer seems to work :-(.
> > >
> > > For example, on this page [3], the link to the "system::platforms()"
> > > method is not properly created.
> 
> I have looked into this a bit more, and I also find that links using the "see also"
> 
> \see or \sa command
> 
> The links present in Doxygen output are not being passed through to Quickbook.
> 
> Two snips attached show the difference for a simple 'see also' Doxygen comment as
> 
> \sa sum(int, int) for a slightly useful function.
> 
> The quickbook section just shows plain text sum(int, int) instead of a link.
> 
> The source of html shows:
> 
> <p>sum(int, int) for a slightly useful function. </p>
> 
> There are NO messages relating to function sum in the Quickbook log
> 
> Am I doing something wrong or have I the wrong expectation of these links?
> 
> Paul
> 
> 
> ---
> Paul A. Bristow,
> Prizet Farmhouse, Kendal LA8 8AB  UK
> +44 1539 561830  07714330204
> [email protected]
> 
> PS Although there are others for other examples of links that are missing:
> 
> Reference to method 'boost::mylibrary::myclass::test_me' is ambiguous. Found:
>               Match in namespace ::
>               Match in namespace ::
> Reference to method 'boost::mylibrary::myclass::test_me' is ambiguous. Found:
>               Match in namespace ::
>               Match in namespace ::
> Reference to method 'boost::mylibrary::myclass::test_me' is ambiguous. Found:
>               Match in namespace ::
>               Match in namespace ::
> Cannot find data-member named 'boost::mylibrary::mylibrary_global'
> Cannot find data-member named '::global_int'
> Cannot find data-member named 'boost::mylibrary::myclass.mypublic_var'
> Cannot find method named 'boost::mylibrary::myclass::mypublic_var'
> Cannot find method named 'boost::mylibrary::myclass.mypublic_var'
> Cannot find data-member named 'boost::mylibrary::myclass::myprivate_var'
> Cannot find class named 'std::exception'
> 
> but I think there may be other causes of this?

I've created a ticket #8972 for the missing links

https://svn.boost.org/trac/boost/ticket/8972

Doxygen \sa see also links are not passed to Quickbook C++ reference section.

(and BTW, failure to get a link is NOT caused by adding () to the function name - but needs to be
specified enough to be uniquely recognized - for example if you have more than one functions with
the same name but different parameters.  Global items need to prefixed by ::.  As specified in

http://www.stack.nl/~dimitri/doxygen/manual/autolink.html

)

Paul