Reputation: 2388
I have the following Problem using doxygen in an C project. I have many internal structures that are not documented. Therefore it set EXTRACT_ALL=NO
in my Doxyfile. Unfortunately doxygen still extracts some of them. Here is a minimal working example. Suppose the following header file:
#ifndef HASHTABLE_H
# define HASHTABLE_H
#ifdef __cplusplus
extern "C" {
#endif
typedef void* object;
typedef char *(*object_getname)( object obj);
typedef void (*object_free)( object obj);
typedef mess_int_t (*object_hash)( char *name, mess_int_t size);
typedef struct {
hashtable_entry *next;
object *obj;
} hashtable_entry;
typedef struct {
object_getname name;
object_free freigabe;
object_hash hash;
mess_int_t size;
hashtable_entry **hashtable;
} hashtable_t;
typedef hashtable_t * hashtable;
#ifdef __cplusplus
}
#endif
#endif
and the following options set in the Doxyfile:
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
But in the generate Data structure list both structures are listed. Some other undocumented structures defined in the same way in other files are not listed as I expect it from the description of EXTRACT_ALL=NO
. Why does doxygen extract some and others not?
The whole doxyfile is available at: http://pastebin.com/J7c9BbvW
I am using doxygen 1.8.5
Upvotes: 1
Views: 1654
Reputation: 1
ENABLE_PREPROCESSING = NO
Unfortunately, doxygen does not parse multi-including header files protect:
#ifndef HASHTABLE_H
# define HASHTABLE_H
Upvotes: 0
Reputation: 2388
The answer of the problem is, like we already discussed it in the above comments, that the following setup works:
EXPORT_ALL=NO
in the Doxyfile
prevents doxygen only extract data structures from header files instead of all source files.
Setting
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
disables the listing of undocumented structures in the header files.
Upvotes: 3