Исключить некоторые классы из документации по Doxygen

StackOverflow https://stackoverflow.com/questions/1434553

  •  07-07-2019
  •  | 
  •  

Вопрос

Я строю проект на основе Qt, и многие классы Qt находятся в целевой документации.

Как я могу сказать Doxygen отключить генерацию документации для некоторых классов? Для Q. *?

Это было полезно?

Решение

Работая в предположении, что у вас есть что-то вроде этого: (вопрос немного неясен в этом отношении)

/**
 * Some documentation for class X
 */
class X: public osg::Drawable {
...
}

И ваша проблема в том, что вы хотите включить документацию для класса X , но не для класса osg :: Drawable , правильный метод - использовать EXCLUDE_SYMBOLS . Например, в приведенном выше случае используйте

EXCLUDE_SYMBOLS = osg::Drawable

Если вы хотите быть немного более строгим, вы можете использовать

EXCLUDE_SYMBOLS = osg::Drawable \
                  Drawable

Подстановочные знаки также разрешены, поэтому это также будет работать

EXCLUDE_SYMBOLS = osg::*

Другие советы

Если тег \ internal не работает, вы можете использовать теги \ cond ... \ endcond для маркировки части кода, которая будет скрыта от Doxygen.

ИЗМЕНИТЬ

Если вы хотите исключить определенные файлы, вы можете использовать переменную EXCLUDE_PATTERNS в файле конфигурации Doxyfile .

Это не лучший способ, но можно пометить некоторую часть документации (класс, члены, ...) с помощью private . Это предотвращает включение фрагмента кода в выходную документацию. (Я использую это, чтобы скрыть, чтобы конструкторы / операторы копирования / перемещения не появлялись в документации API.)

/*!
 * \brief This is included.
 */
class API
{
public:
    /*!
     * \brief So is this.
     */
    API() noexcept;
    /// \private
    ~API() noexcept; /* But this not, though technically public. */
private:
    int m_version; /* This is not either. */
}

Следует отметить, что это расширение Doxygen для PHP, которое согласно документация их не следует использовать.

  

Для файлов PHP есть ряд дополнительных команд, которые можно использовать внутри классов, чтобы сделать члены открытыми, закрытыми или защищенными, даже если сам язык не поддерживает это понятие.

Другой вариант - использовать предоставленное решение mouviciel , но для этого требуется как минимум две строки.

<Ч>

Хотя это и не правильный ответ на подробный вопрос, он может быть полезен для читателей названия вопроса (таких как я). Это работает и для classe!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top