2012-06-14 15 views
11

Quiero documentar una biblioteca con doxygen. La documentación será leída por dos clases de personas: los usuarios, que solo están interesados ​​en la API externa y los desarrolladores que desean ver documentación para todas las funciones/estructuras.Documentación "interna" separada de "externa" en doxygen

Me gustaría utilizar para separar archivos doxyfiles para crear la documentación. ¿Hay alguna "etiqueta" que pueda poner en un bloque de comentarios para marcar un comentario como interno/externo?

+0

¿Qué idioma es la biblioteca? En C# por ejemplo, creo que doxygen puede ver los modificadores de función 'public' vs' internal' .. – Blorgbeard

+0

la biblioteca está escrita en C – timos

Respuesta

16

Conjunto INTERNAL_DOCS:

# The INTERNAL_DOCS tag determines if documentation 
# that is typed after a \internal command is included. If the tag is set 
# to NO (the default) then the documentation will be excluded. 
# Set it to YES to include the internal documentation. 

INTERNAL_DOCS   = NO 

En la documentación, puede utilizar \internal o @internal en cualquier granularidad que desee (archivo, función, etc.).

+0

Me ahorraste mucho dolor intentando obtener cond o si hagas lo mismo. –

+0

el \ interno casi nunca hace lo que crees que hace. Solo oculta la documentación, no las clases o funciones con las que se está utilizando. Recomiendo usar el \ cond /\ endcond mencionado por Mad Physicist en otra respuesta. – gnash117

9

Utilice el comando \ cond:

\internal (@internal) solamente tiene granularidad para el bloque de comentario actual. No se le permite a ningún modo de ocultar una definición de estructura en C.

La forma más sencilla de hacerlo es poner

\ cond INTERNO

en la parte superior de un archivo de cabecera interna y

\ endcond

en la parte inferior. A continuación, en el archivo de configuración, se agrega

ENABLED_SECTIONS = INTERNO

para permitir que los elementos internos que se incluirán en la documentación.

De esta manera también es recomendado por los usuarios de Doxygen, p. here

0

Esta es una solución simple que hace uso del hecho de que generalmente puede distinguir las partes internas y externas de su código en archivos.

Usted puede simplemente limitar los archivos de entrada sólo a aquellos ficheros de cabecera que desea exponer en la documentación externa:

# For internal, we parse all files 
INPUT = ./ 
# For external, we parse only the files containing the public interface 
INPUT = include/header1.hpp include/header2.hpp 

Esto tiene la ventaja de que los archivos de origen no tienen que ser modificado (con \internal o @internal).

Cuestiones relacionadas