At Sat, 19 Jan 2019 12:24:33 -0500 Richard Damon <rich...@damon-family.org> wrote:
> > On 1/19/19 10:03 AM, Hans wrote: > > Hi, > > > > > > I have a largish project, consisting of 12 libraries and 50 or so > > executables. Some of the executables declare 'duplicate' class names - > > they are not real duplicates, of course, since they are never linked > > together, but the same name is still find in several places. How do I > > tell Doxygen that symbols from two executables really refer to two > > different things? > > > > For example, foo.exe contains class MainWindow. bar.exe also contains > > class MainWindow, but of course it is a different thing altogether. > > Can I somehow get Doxygen to keep them separate in the output? > > > > I don't want to run Doxygen 50 times, once for each executable. It > > would be incredibly slow, and take up a huge amount of diskspace. > > > > > > Thanks in advance! > > > > H. Guijt > > > That isn't really how Doxygen is intended to be used from what I know, > but one way around it would be for each executable to place its > duplicates in a unique namespace (perhaps named for the executable), and > then Doxygen would document each in its own namespace, and not see them > as duplicates. The header declaring the class could even than bring the > name into the global namespace so most of the program doesn't need to > see the difference. I'm presuming these classes are not actually in a public API library -- either they are defined in "private" header files (header files only ever included in the corresponding to the C++ main for the exe in question) or defined directly in the C++ files specific to the exe in question). It might also make sense to NOT use "correct" Doxygen commentting -- include comments of course, but not formatted in a way that Doxygen recognizes (eg replace /** with /*+, etc.) -- Doxygen won't pick them up and won't document them (and won't get confused or create confusing documentation). Since they don't document a public API, there is no harm. Or don't actually feed the "private" header files or C++ source code to Doxygen (unless you are using the C++ main program to create man1 or man8 pages, or something like that -- eg program usage docs). As Richard says "That isn't really how Doxygen is intended to be used...", you probably *don't* want to "document" a non-public API, which is what these classes sound like what they are. Doxygen is meant to document *public* APIs (programs, classes, functions, etc.) that will be called by programs written by other people, who would then link with your library or run your main programs (your .exe files). -- Robert Heller -- 978-544-6933 Deepwoods Software -- Custom Software Services http://www.deepsoft.com/ -- Linux Administration Services hel...@deepsoft.com -- Webhosting Services _______________________________________________ Doxygen-users mailing list Doxygen-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/doxygen-users