Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Doxygen with C# internal access modifier

Tags:

c#

doxygen

I am using Doxygen to generate some API docs for a C# project I am working on. I have quite a bit of "internal" functionality in this project and don't want Doxygen producing these signatures in the generated html it produces.

I have tried enabling HIDE_FRIEND_COMPOUNDS but this still results in my internal classes being exposed in the generated documentation.

Does anyone know how to do this?

like image 428
Mike Gates Avatar asked Dec 07 '09 19:12

Mike Gates


2 Answers

Addon to Mac H's answer, you have to set these additional configuration parameters to make it work:

# The PREDEFINED tag can be used to specify one or more macro names that 
# are defined before the preprocessor is started (similar to the -D option of 
# gcc).     

PREDEFINED             = internal=private

# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
# will be included in the documentation.  

EXTRACT_PRIVATE        = NO

# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
# evaluate all C-preprocessor directives found in the sources and include 
# files.

ENABLE_PREPROCESSING   = YES

# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
# names in the source code. If set to NO (the default) only conditional 
# compilation will be performed. Macro expansion can be done in a controlled 
# way by setting EXPAND_ONLY_PREDEF to YES.

MACRO_EXPANSION        = YES

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
# then the macro expansion is limited to the macros specified with the 
# PREDEFINED and EXPAND_AS_DEFINED tags.

EXPAND_ONLY_PREDEF     = YES
like image 69
thumbmunkeys Avatar answered Sep 27 '22 23:09

thumbmunkeys


Just came across the topic... use \internal doxygen keyword, it is designed just for that.

like image 36
Slava Avatar answered Sep 28 '22 00:09

Slava