Hi Anthony,

 

Thanks for your suggestions. However, my experience regarding the placement of 
documentation files is the same as Tom’s: The directory paths are 
non-predictable and pretty much change with every run. That might be related to 
new source files being added, but adding new files is more or less an everyday 
process. No matter what, permanent paths definitely don’t work for us (believe 
me, I’ve tried).

 

The idea of the wiki interpreting the tag files sounds interesting, I’ll try 
digging into this. However, in our case, the Wiki and the doxygen documentation 
are on two different machines which don’t really know much about each other, so 
I’m not sure if it even will be possible to make the tagfiles visible.

 

Since you were asking, the Javadoc tool handles this actually in a 
straightforward way: The generated documentation represents the source files’ 
package structure. Thus, the directory paths are not only stable, but actually 
predictable just by looking at the source code. Most likely this mechanism 
relies on Java’s specific requirement that the directory structures must match 
the package structures. As doxygen has a multi-language approach, I suppose 
something similar won’t be easy to implement (if possible at all). But I don’t 
know enough about doxygen’s internals to really asses this question…

Mit freundlichen Grüßen 

Raimund Klein

EDV / Software Entwickler

 

BERENBERG BANK

Joh. Berenberg, Gossler & Co. KG

Neuer Jungfernstieg 20

20354 Hamburg

 

Telefon +49 40 350 60-8129

Telefax +49 40 350 60-955

E-Mail raimund.kl...@berenberg.de

www.berenberg.de <outbind://75/www.berenberg.de> 

 

Sitz: Hamburg - Amtsgericht Hamburg HRA 42659

Von: Anthony Foiani [mailto:anthony.foi...@gmail.com] 
Gesendet: Mittwoch, 27. Februar 2013 13:22
An: Tom Tanner; Klein, Raimund
Cc: doxygen-users@lists.sourceforge.net
Betreff: Re: [Doxygen-users] CREATE_SUBDIRS

 

Tom, Raimund --

2013/2/27 Klein, Raimund <raimund.kl...@berenberg.de>

 

My question regarding this: What is a „huge“ amount of source files? Are there 
any known values for this? We’re generating the doxygen docs every night, but 
because of the unpredictable placement of files in the subdirectories, we can 
never have permanent links to any file inside there e.g. from our Wiki or Jira.

 

However, I tend to think our projects are indeed non trivial regarding the 
number of source files, so I’d appreciate if anyone had somewhat substantial 
data on this.

 

On Wed, Feb 27, 2013 at 4:42 AM, Tom Tanner (BLOOMBERG/ LONDON) 
<ttann...@bloomberg.net> wrote:

I'm not sure precisely what huge is but I have had a situation where we 
actually hit a limit on the number of files in a directory.

And it's almost impossible to clean up a directory that large.

So I'd like to go to subdirs. But I can't because there appears to be no 
predictability about where files will go (or at least I haven't had an answer 
on this group to my last question on the subject) and it is then impossible to 
link to individual pages from a wiki because you don't know where they'll be 
next time you generate the doxygen pages.


If you request that doxygen create a tag file, it will include the path and 
anchor for your entites, e.g.,

    <member kind="function">
      <type>void</type>
      <name>pushStringVector</name>
      <anchorfile>d3/dd7/UNAPReader_8c.html</anchorfile>
      <anchor>abbd334d33e2b450ebe9d3810a0c8adc8</anchor>
      <arglist>(StringVector *v, const char *val)</arglist>
    </member>

So it's possible (but potentially ugly) to use that tag file to update your 
wiki after every documentation rebuild.

From a quick look at the code, those values (anchorfile and anchor) should be 
stable.  Once an entity has been documented, it should remain the same unless 
the file is renamed (or if the doxygen config file is modified...)  Signature 
changes will modify the anchor, but will not change the anchorfile.

That will only work with long filenames, btw.  Short filenames are just numbers 
since discovery, and not cached between runs -- so if a new file shows up in 
the code base, all later files will get different filepaths.

The actual algorithm for filename seems to use the last 12 bits of an MD5 over 
the escaped filename (see "convertNameToFile" in src/util.cpp); there are even 
comments pointing out that at least one earlier method was not stable.

That means that you might be able to have a hook in your wiki to take some 
custom markup, look up the location in the tag file, and update the wiki 
document upon update.

Alternately, you can massage the tag file into an HTML file, then have your 
wiki pages point into that index.  That way, you only have to recreate the 
index as a part of your docs rebuild -- but you might have to require an extra 
click or some javascript to get to the final documentation.

Finally, the best option might be to extend your wiki engine to understand 
these tags, so you can just link to the function name, and have the wiki engine 
look up the correct current link automatically...

How does JavaDoc handle this?

Hope this helps.

Best regards,
Anthony Foiani


Diese Nachricht einschliesslich etwa beigefuegter Anhaenge ist vertraulich und 
kann dem Bank- und Datengeheimnis unterliegen oder sonst rechtlich geschuetzte 
Daten und Informationen enthalten. Wenn Sie nicht der richtige Adressat sind 
oder diese Nachricht irrtuemlich erhalten haben, informieren Sie bitte sofort 
den Absender über die Antwortfunktion. Anschliessend moechten Sie bitte diese 
Nachricht einschliesslich etwa beigefuegter Anhaenge unverzueglich vollstaendig 
loeschen. Das unerlaubte Kopieren oder Speichern dieser Nachricht und/oder der 
ihr etwa beigefuegten Anhaenge sowie die unbefugte Weitergabe der darin 
enthaltenen Daten und Informationen sind nicht gestattet. Wir weisen darauf 
hin, dass rechtsverbindliche Erklaerungen namens unseres Hauses grundsaetzlich 
der Unterschriften zweier ausreichend bevollmaechtigter Vertreter unseres 
Hauses beduerfen. Wir verschicken daher keine rechtsverbindlichen Erklaerungen 
per E-Mail an Dritte. Demgemaess nehmen wir per E-Mail auch keine 
rechtsverbindlichen Erklaerungen oder Auftraege von Dritten entgegen. 
Sollten Sie Schwierigkeiten beim Oeffnen dieser E-Mail haben, wenden Sie sich 
bitte an den Absender oder an i...@berenberg.de. Please refer to 
http://www.berenberg.de/my_berenberg/disclaimer_e.html for our confidentiality 
notice.

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to