0

I have a following structure of my project:

    root/
        +--root.doxyfile
        +--root.doxytag
        +--doc/
              +--html/
        +--packages/
                   +--project1/
                              +--project1.doxyfile
                              +--project1.doxytag
                              +--foo.h
                              +--foo.cpp
                              +--doc/
                                    +--html/

I generated a proper doxygen documentation of "project1" containing a one group named "TestGroup". What I want to do is to make the project1's group visible in root's documentation - "TestGroup" at "Modules" tab in root html documentation.

I set tagfiles in root.doxyfile :

TAGFILES = packages/project1/project1.doxytag=../../packages/project1/doc/html
ALLEXTERNALS = YES
EXTERNAL_GROUPS = YES

After generating a html root documentation I only see files from project1 at "Files" tab, but "TestGroup" is not present at "Modules" tab. I would like to mention that "TestGroup" is visible in project1 html documentation.

What I am doing wrong? It is possible to make this group visible at "Modules" tab?

bpokrzywa
  • 1
  • 2

1 Answers1

0

I just ran into this issue today and did get the external group to show up in the Modules tab. It has to do with your relative tagfile location after the "=" in TAGFILES. It looks like you specify the project1.doxytag file relative to root but then incorrectly specify where the project1 html directory is.

I was expecting to see

TAGFILES = packages/project1/project1.doxytag=packages/project1/doc/html

This is, of course, assuming that you ran doxygen from within the root directory like so: doxygen root.doxyfile.

If it doesn't work, I may be overlooking one of the incredibly many options available in the doxyfile.

MY more immediate problem is trying to make a group be within (\ingroup) an external group and have that structure shown locally. Haven't been able to figure that out yet, but I'll keep trying.

David Harrison
  • 256
  • 1
  • 9
  • Thank you @David Harrison, but it doesn't work. I've changed tagfiles path as you mentioned, but external group at root documentation is still not visible. I haven't got any groups at root documentation and only one external group (at project1). Unfortunately, there is no "Modules" tab at root documentation. – bpokrzywa Jul 14 '16 at 12:14
  • could you please show some example files to find how to make it work? – bpokrzywa Jul 14 '16 at 12:39
  • Hmmm... My main approach is to have a .dox file (in the same directory that .doxyfile is in) that just contains comments that define and document a group (@defgroup). I do this so that I can have that particular group created from the current project or also possibly an external one. I include that .dox file in the list of input files in the .doxyfile. Perhaps this is the difference? You can then include that .dox file in another project to see if THAT causes the Module name to appear. – David Harrison Jul 14 '16 at 12:56
  • So according to my project I should: 1. create TestGroup.dox file at root folder, .dox file should contains (@defgroup TestGroup), 2. add TestGroup.dox to INPUT in root.doxyfile, 3. in project1 use @addtogroup TestGroup. Did I miss something? – bpokrzywa Jul 14 '16 at 13:28
  • All looks good EXCEPT I use "@ingroup" instead of "@addtogroup". I'm currently refactoring a whole mess of "@addtogroup" to specifying "@ingroup" to each and every class that I want in the group. That seems to work the best for me. I originally tried using "@addtogroup" with "@{" and "@}" markers to add everything in a header file. That didn't work very well. – David Harrison Jul 14 '16 at 13:34
  • And one more question: Should I add TestGroup.dox from root folder to INPUT section of project1.doxyfile? – bpokrzywa Jul 14 '16 at 13:39
  • More precisely: I use "@ingroup" for each CLASS, while "@addtogroup" with "@{" and "@}" for including functions and typedefs. – David Harrison Jul 14 '16 at 13:40
  • I think you SHOULD include TestGroup.dox as input to project1.doxyfile. If you want to keep things tidier, you can move TestGroup.dox into project1 and then refer to it there from the root.doxyfile. – David Harrison Jul 14 '16 at 13:42
  • You may also want to have a look at http://stackoverflow.com/questions/11570069/merging-doxygen-modules?rq=1 – David Harrison Jul 14 '16 at 20:34