Excluir algumas classes de documentação doxygen
-
07-07-2019 - |
Pergunta
Eu estou construindo um projeto baseado Qt, e muitas classes Qt são encontrados na documentação do alvo.
Como posso saber Doxygen para desativar geração de documentação para algumas classes? Para Q. *?
Solução
trabalhando sob a suposição de que o que você tem é algo como isto: (A questão é um pouco claro a este respeito)
/**
* Some documentation for class X
*/
class X: public osg::Drawable {
...
}
E o problema é que você deseja incluir documentação para X
classe, mas não para osg::Drawable
classe, a boa técnica é usar EXCLUDE_SYMBOLS
. Por exemplo, no caso acima uso
EXCLUDE_SYMBOLS = osg::Drawable
Se você quiser ser um pouco mais rigoroso, você pode usar
EXCLUDE_SYMBOLS = osg::Drawable \
Drawable
Selvagem-cards também são permitidos, de modo que este também irá trabalhar
EXCLUDE_SYMBOLS = osg::*
Outras dicas
Se tag \internal
não funcionar, você pode tentar etiquetas \cond ... \endcond
para a marcação de uma parte do código a ser escondido da Doxygen.
Editar
Se você quiser excluir arquivos específicos, você pode usar variável EXCLUDE_PATTERNS
em Doxyfile arquivo de configuração.
A sua não é o melhor caminho, mas pode-se marcar uma parte da documentação (classe, membros, ...) com o private
. Isso impede que o pedaço de código seja incluído na documentação de saída. (Eu uso isso para esconder copiar / mover construtores / operadores de aparecer na documentação da 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. */
}
Deve-se notar, porém, que esta é uma extensão Doxygen para PHP, que de acordo com o documentação eles não devem ser usados.
Para arquivos PHP, há uma série de comandos adicionais, que pode ser usado dentro das classes para fazer os membros públicos, privados ou protegidos, mesmo que a linguagem em si não suporta esta noção.
A outra opção é para usar a solução mouviciel fornecida, mas requer, pelo menos, duas linhas.
Apesar de não ser a resposta correta para a pergunta detalhado que poderia ser útil para os leitores do título da pergunta (como eu). Ele trabalha para classe também!