On 17 Feb 2014, at 21:17, Dimitri van Heesch
<doxy...@gmail.com<mailto:doxy...@gmail.com>> wrote:
Hi Edward,
On 17 Feb 2014, at 16:32 , Edward Moyse
<edward.mo...@cern.ch<mailto:edward.mo...@cern.ch>> wrote:
Hi all,
I'm just trying to understand why our doxygen builds take such an insane amount
of time. I think we're not currently building tags first then making the html
after, as recommended here:
http://stackoverflow.com/questions/8247189/doxygen-is-slow/8247993#8247993
and so I'm investigating changing this...
But also we seem to have an incredibly slow part of the process where the html
is parsed to turn links like:
file:///my/local/path/doc/xAODMuon/html/classSG_1_1AuxElement.html
into
html://a/web/location/doc/xAODMuon/html/classSG_1_1AuxElement.html
(The reason for this is we build the documentation on a local machine, then
once it's done it's copied to a web visible location)
Presumably there is a better way to do this? I'd have thought it should be
possible to specify that the html will eventually live elsewhere, but I had a
look at the documentation and couldn't see it?
Doxygen normally doesn't create any absolute URLs (with file:// or http:// in
them), so the URL renaming process is not part of doxygen and shouldn't be
needed at all. Just copy the HTML files to the web location in the end.
Hi Dimitri,
Thanks for the reply, and sorry for the delay in getting back to you - I've
been trying to investigate a bit more before asking again.
What we have is a structure like the following:
ProjectA
PackageA
build
headers
src
PackageB
build
headers
src
ProjectB
PackageC
build
headers
src
PackageD
build
headers
src
What we try to end up with is:
Output/doc/
PackageA
html
PackageA.tag
PackageB
html
PackageB.tag
PackageC
html
PackageC.tag
PackageD
html
PackageD.tag
I'm trying to work out how best to achieve this...
What I'm trying right now involves two steps (as you suggested):
1) loop through each package (in the original location), build the tagfile of
the package and output it to Output/PackageX.tag
2) loop through each package again (again in the original location), and
generate the html in Output/PackageX/html
For both step1 and step2 the generated Doxyfiles (one per package) have:
OUTPUT_DIRECTORY = /Output/doc/PackageX
INLINE_SOURCES = YES
For step 1, the Doxyfile has :
GENERATE_HTML = NO
TAGFILES =
GENERATE_TAGFILE = /Output/doc/PackageX.tag
For step 2, the Doxyfile has:
GENERATE_HTML = YES
TAGFILES = /Output/doc/PackageA.tag=/Output/doc/PackageA/html
i.e. paths are absolute (since the relative path isn't reliable - the build
location can change).
There are quite a few problems unfortunately.
1) INLINE_SOURCES seems to be ignored... (which is just ver
2) Many links don't work.
For example, PackageA has MyObjectA which uses MyObjectB from PackageB, and
both exist in the namespace Foo.
In the generated documentation for MyObjectA, there is a link to MyObjectB, but
in fact it points to
When I look into PackageB.tag, I see the following:
<compound kind="file">
<name> MyObjectB </name>
<path>/ProjectA/PackageA/headers/</path>
<filename> MyObjectB_8h</filename>
<includes id="MyObjectB_8h" name="MyObjectB.h" local="yes"
imported="no">versions/MyObjectB.h</includes>
<namespace>Foo</namespace>
<member kind="typedef">
<type> MyObjectB_v1</type>
<name> MyObjectB </name>
<anchorfile>namespaceFoo.html</anchorfile>
<anchor>a795ac8d2e30fdc75f7c9266766629005</anchor>
<arglist></arglist>
</member>
</compound>
i.e. the anchorfile is somehow being misunderstood to be the namespace file.
And the <path> tag points to the complete build directory (I'm not sure if this
is a problem or not?). The problem here might be related to the fact that we
make quite a lot of use of typedefs in these particular packages... In fact, I
just tried changing some of the documentation to refer to ObjectB_v1 rather
than ObjectB, and it worked correctly. But this is a bit of a pain, since we
want to hide the version from users, and we don't want to have to update all
the documentation once the version changes.
A related question - is there any way to tell Doxygen that, never mind how many
packages you find namespace Foo in, THIS is the definitive documentation and to
only use this? We have Foo spread across hundreds of packages, unfortunately.
Thanks in advance for any debugging tips you could give (I hope the above is
comprehensible - I'm having to obfuscate our code, which makes this a lot more
painful to explain!)
Cheers,
Ed
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users