doxygengroup Directive#
This directive generates the appropriate output for the contents of a doxygen group. A doxygen group can be declared with specific doxygen markup in the source comments as cover in the doxygen grouping documentation.
It takes the standard project
, path
, outline
and no-link
options
and additionally the content-only
, desc-only
, members
,
protected-members
, private-members
, undoc-members
and inner
options.
content-only
If this flag is specified, then the directive does not output the name of the group or the group description and instead outputs the contents of the group. This can be useful if the groups are only used for organizational purposes and not to provide additional information.
desc-only
If specified, only the description and name of the group will be displayed.
members
If specified, the public members of any classes in the group output will be displayed. Unlike the
doxygenclass
members
option, this does not optionally take a list of member names to display as this will be applied across multiple classes within the group.protected-members
If specified, the protected members of any classes in the group output will be displayed.
private-members
If specified, the private members of any classes in the group output will be displayed.
undoc-members
If specified, the undocumented members of any classes in the group output will be displayed provided the appropriate
members
orprivate-members
options are specified as well.
If you would like to always specify some combination of members
,
protected-members
, private-members
and undoc-members
then you can
use the breathe_default_members
configuration
variable to set it in the conf.py
.
inner
If specified, the groups that were defined inside this group, by either defining them inside the scope of another group, or by using the Doxygen ingroup command, are also parsed and loaded.
Basic Example#
The plain doxygengroup
directive will output the group name and description
and any top level publicly visible members of the group.
.. doxygengroup:: mygroup
:project: group
It produces this output:
Content-Only Example#
The content-only
option changes the output to only include the content of
the group and not the group name or description. So this:
.. doxygengroup:: mygroup
:project: group
:content-only:
Produces this output:
-
void groupedFunction()
This function is in MyGroup.
-
class GroupedClassTest
- #include <group.h>
first class inside of namespace
Note
As you can see from the output, section headings like ‘Functions’ are missing
from the :content-only:
display. This is due to an implementation detail. If
post an issue on github if you’d like it addressed.
Members Example#
The members
option changes the output to include the public members of any
classes. The output for any class in the group should be the same as if it had
be produced by the doxygenclass directive with the
members
option specified.
.. doxygengroup:: mygroup
:project: group
:members:
It produces this output:
- group mygroup
This is the first group.
Functions
-
void groupedFunction()
This function is in MyGroup.
-
class GroupedClassTest
- #include <group.h>
first class inside of namespace
Public Functions
-
virtual void publicFunction() const = 0
namespaced class function
-
class PublicClass
- #include <group.h>
A protected class.
-
class UndocumentedPublicClass
-
virtual void publicFunction() const = 0
-
void groupedFunction()
Protected Members Example#
The protected-members
option changes the output to include the protected
members of any classes. The output for any class in the group should be the same
as if it had be produced by the doxygenclass directive
with the protected-members
option specified.
.. doxygengroup:: mygroup
:project: group
:protected-members:
It produces this output:
- group mygroup
This is the first group.
Functions
-
void groupedFunction()
This function is in MyGroup.
-
class GroupedClassTest
- #include <group.h>
first class inside of namespace
Protected Functions
-
inline void protectedFunction()
A protected function.
-
class ProtectedClass
- #include <group.h>
A protected class.
-
class UndocumentedProtectedClass
-
inline void protectedFunction()
-
void groupedFunction()
Private-Members Example#
The private-members
option changes the output to include the private members
of any classes. The output for any class in the group should be the same as if
it had be produced by the doxygenclass directive with the
private-members
option specified.
.. doxygengroup:: mygroup
:project: group
:private-members:
Produces this output:
- group mygroup
This is the first group.
Functions
-
void groupedFunction()
This function is in MyGroup.
-
class GroupedClassTest
- #include <group.h>
first class inside of namespace
Private Functions
-
virtual void privateFunction() const = 0
This is a private function.
-
class PrivateClass
A private class.
-
class UndocumentedPrivateClass
-
virtual void privateFunction() const = 0
-
void groupedFunction()
Undocumented Members Example#
The undoc-members
option changes the output to include any undocumentated
members from the sections (public, protected, private) that are being displayed
for the classes in the group output.
.. doxygengroup:: mygroup
:project: group
:private-members:
:undoc-members:
Produces this output:
- group mygroup
This is the first group.
Functions
-
void groupedFunction()
This function is in MyGroup.
-
class GroupedClassTest
- #include <group.h>
first class inside of namespace
Private Functions
-
virtual void privateFunction() const = 0
This is a private function.
-
virtual void undocumentedPrivateFunction() const = 0
-
class PrivateClass
A private class.
-
class UndocumentedPrivateClass
-
virtual void privateFunction() const = 0
-
void groupedFunction()
Note
Undocumented classes are still not shown in the output due to an implementation issue. Please post an issue on github if you would like this resolved.
Inner Example#
The inner
option changes the output to include groups that are defined
inside other groups.
.. doxygengroup:: mygroup
:project: group
:inner:
Produces this output:
- group mygroup
This is the first group.
Functions
-
void groupedFunction()
This function is in MyGroup.
-
class GroupedClassTest
- #include <group.h>
first class inside of namespace
This is an inner group.
-
class InnerGroupClassTest
- #include <group.h>
inner class inside of namespace
-
void groupedFunction()
Outline Example#
This displays only the names of the members of the group and not their documentation. The other options determine which members are displayed.
.. doxygengroup:: mygroup
:project: group
:members:
:outline:
It produces this output:
- group mygroup
Functions
-
void groupedFunction()
-
class GroupedClassTest
Public Functions
-
virtual void publicFunction() const = 0
-
class PublicClass
-
class UndocumentedPublicClass
-
virtual void publicFunction() const = 0
-
void groupedFunction()
Failing Example#
This intentionally fails:
.. doxygengroup:: madeupgroup
:project: group
It produces the following warning message:
Warning
Cannot find file “madeupgroup” in doxygen xml output for project “group” from directory: ../../examples/specific/group/xml/