Namespace members behaviour in 1.8.13

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Namespace members behaviour in 1.8.13

didje
I am using Doxygen 1.8.13.

Previously I was using Doxygen 1.8.10

I am generating the documentation for a library libA, which, in has as its @INPUT tag only the following:

@INPUT = ../libB/AFile.h \
         docs/Overview.html

AFile.h contains lots of includes of header files from other libraries.

With Doxygen 1.8.10, a "Namespace Members" page was generated, with an alphabetically ordered list of the namespace members (from various different libraries).
However, with Doxygen 1.8.13, no "Namespace Members" page was generated at all.

Why is this ?
Reply | Threaded
Open this post in threaded view
|

Re: Namespace members behaviour in 1.8.13

didje
Updating this with some more detailed information after further investigation:

I am using Doxygen 1.8.13.

Previously I was using Doxygen 1.8.10

With Doxygen 1.8.10, when I generated documentation for a library using a file from another library, a "Namespace Members" page was generated in the first library, with an alphabetically ordered list of the namespace members from the other libraries and from any other library containing additional namespace members for such namespaces, if those other libraries tag files had been included by the second library.
However, in Doxygen 1.8.13, a Namespace Members page is generated for the first library containing only the namespace members found in the second library and not in any other libraries with tag files included in the second library.

I realise the above sentence is a brain-twister, so I will give a concrete example below:

I am generating documentation for three libraries, TestLibB, TestLibC and TestLibD.

Using Doxygen 1.8.13, I do as follows:

TestLibD library contains one file named FileD.h, with the following contents:

    /*!
     * \file FileD.h
     * \brief Describes FileA stuff
     */

    /*! \brief
     * Contains ABC stuff
     */
    namespace ABC {
    /*! \enum YEnumA
     * \brief YEnumA stuff
     */
    enum YEnumA {
    eABORT,
    eIGNORE
    };

    }

I generate the documentation using the default generated Doxyfile properties, apart from the following tags:
   
    @PROJECT_NAME="TestLibD"
    @INPUT=FileD.h
    @GENERATE_TAGFILE  = $(DOXY_OUTPUT)/TestLibD.tag

TestLibB library contains one file named FileB.h, with the following contents:

    /*!
     * \file FileB.h
     * \brief Describes FileB stuff
     */

    /*! \brief
     * Contains ABC stuff
     */
    namespace ABC {
       
    /*! \enum XEnumA
    * \brief XEnumA stuff
    */
    enum XEnumA {
    eABORT,
    eIGNORE
    };

    }

I generate the documentation using the default generated Doxyfile properties, apart from the following tags:
the following:

    @PROJECT_NAME="TestLibD"
    @INPUT=FileD.h
    @GENERATE_TAGFILE=$(DOXY_OUTPUT)/TestLibD.tag
    @TAGFILES=$(DOXY_OUTPUT)/../TestLibD/TestLibD.tag=../TestLibD

TestLabC library does not contain any of its own files.
It uses the default generated Doxyfile properties, apart from the following tags:

    @PROJECT_NAME="TestLibC"
    @INPUT=Overview.html ../TestLibB/FileB.h
    @TAGFILES=$(DOXY_OUTPUT)/../TestLibD/TestLibD.tag=../TestLibD

I generate the documentation for TestLibC. On its namespacemembers page, is the following:

    XEnumA : ABC

Now, using Doxygen 1.8.10, I repeat the above steps:

In the namespacemembers page for TestLibC, I see the following:
   
    XEnumA : ABC
    YEnumA : ABC

What is the reason for the difference in the namespacemember between 1.8.10 and 1.8.13 ?