1
votes

I am using doxygen in my c++ project for generating documentation. My project contains both class functions and procedural calls like,

 //AAA.h
 namespace NAME
 {
  Class EXPORT AAA
  {
    /*!
     * \brief Sample function.
     *
     * \param a is an integer value.
     *
     * This is a sample function.
     */  
     void SampleFunction(int a);
  }
}'

after building this this code the doxygen is working fine and getting a detailed documentation. But when i tried this with a procedural call like,

//BBB.h
namespace NAME2
{
  /*!
  * \brief This is a function      
  *
  * \param b is a float
  *
  * This is a function
  */
  void function(float b);
 }

After building the code the document creates but missing the html file for its description, ie,

the doxygen creates with function name with brief statement.But when i click the function name it shows that html file is missing for the function description. And following is the doxyfile for the doxygen in my project. For generating the entire docs which field is to be changed in the doxyfile?

  # Doxyfile 1.5.5

  #---------------------------------------------------------------------------
  # Project related configuration options
  #---------------------------------------------------------------------------
  DOXYFILE_ENCODING      = UTF-8
  PROJECT_NAME           = "SAMPLE"
  PROJECT_NUMBER         = 0.0
  OUTPUT_DIRECTORY       = internal_docs/
  CREATE_SUBDIRS         = NO
  OUTPUT_LANGUAGE        = English
  BRIEF_MEMBER_DESC      = YES
  REPEAT_BRIEF           = YES
  ABBREVIATE_BRIEF       = "The $name class" \
                           "The $name widget" \
                           "The $name file" \
                           is \
                           provides \
                           specifies \
                           contains \
                           represents \
                           a \
                           an \
                           the
  ALWAYS_DETAILED_SEC    = NO
  INLINE_INHERITED_MEMB  = NO
  FULL_PATH_NAMES        = NO
  STRIP_FROM_PATH        = ../src/
  STRIP_FROM_INC_PATH    =
  SHORT_NAMES            = YES
  JAVADOC_AUTOBRIEF      = NO
  QT_AUTOBRIEF           = NO
  MULTILINE_CPP_IS_BRIEF = NO
  INHERIT_DOCS           = YES
  SEPARATE_MEMBER_PAGES  = NO
  TAB_SIZE               = 8
  ALIASES                =
  OPTIMIZE_OUTPUT_FOR_C  = NO
  OPTIMIZE_OUTPUT_JAVA   = NO
  OPTIMIZE_FOR_FORTRAN   = NO
  OPTIMIZE_OUTPUT_VHDL   = NO
  BUILTIN_STL_SUPPORT    = NO
  CPP_CLI_SUPPORT        = NO
  SIP_SUPPORT            = NO
  DISTRIBUTE_GROUP_DOC   = NO
  SUBGROUPING            = YES
  TYPEDEF_HIDES_STRUCT   = NO
  #---------------------------------------------------------------------------
  # Build related configuration options
  #---------------------------------------------------------------------------
  EXTRACT_ALL            = NO
  EXTRACT_PRIVATE        = YES
  EXTRACT_STATIC         = YES
  EXTRACT_LOCAL_CLASSES  = YES
  EXTRACT_LOCAL_METHODS  = YES
  EXTRACT_ANON_NSPACES   = NO
  HIDE_UNDOC_MEMBERS     = NO
  HIDE_UNDOC_CLASSES     = NO
  HIDE_FRIEND_COMPOUNDS  = NO
  HIDE_IN_BODY_DOCS      = NO
  INTERNAL_DOCS          = NO
  CASE_SENSE_NAMES       = YES
  HIDE_SCOPE_NAMES       = NO
  SHOW_INCLUDE_FILES     = YES
  INLINE_INFO            = YES
  SORT_MEMBER_DOCS       = NO
  # GG setting below to YES will cause things to be alphabetic
  SORT_BRIEF_DOCS        = YES
  SORT_GROUP_NAMES       = NO
  SORT_BY_SCOPE_NAME     = NO
  GENERATE_TODOLIST      = YES
  GENERATE_TESTLIST      = YES
  GENERATE_BUGLIST       = YES
  GENERATE_DEPRECATEDLIST= YES
  ENABLED_SECTIONS       =
  MAX_INITIALIZER_LINES  = 30
  SHOW_USED_FILES        = YES
  SHOW_DIRECTORIES       = NO
  FILE_VERSION_FILTER    =
  #---------------------------------------------------------------------------
  # configuration options related to warning and progress messages
  #---------------------------------------------------------------------------
  QUIET                  = YES
  WARNINGS               = YES
  WARN_IF_UNDOCUMENTED   = YES
  WARN_IF_DOC_ERROR      = YES
  WARN_NO_PARAMDOC       = YES
  WARN_FORMAT            = "$file:$line: $text"
  WARN_LOGFILE           =
  #---------------------------------------------------------------------------
  # configuration options related to the input files
  #---------------------------------------------------------------------------
  INPUT                  = ../internal_include/ ../include/
  INPUT_ENCODING         = UTF-8
  FILE_PATTERNS          = *.c \
                           *.cc \
                           *.cxx \
                           *.cpp \
                           *.c++ \
                           *.d \
                           *.java \
                           *.ii \
                           *.ixx \
                           *.ipp \
                           *.i++ \
                           *.inl \
                           *.h \
                           *.hh \
                           *.hxx \
                           *.hpp \
                           *.h++ \
                           *.idl \
                           *.odl \
                           *.cs \
                           *.php \
                           *.php3 \
                           *.inc \
                           *.m \
                           *.mm \
                           *.dox \
                           *.py \
                           *.f90 \
                           *.f \
                           *.vhd \
                           *.vhdl \
                           *.C \
                           *.CC \
                           *.C++ \
                           *.II \
                           *.I++ \
                           *.H \
                           *.HH \
                           *.H++ \
                           *.CS \
                           *.PHP \
                           *.PHP3 \
                           *.M \
                           *.MM \
                           *.PY \
                           *.F90 \
                           *.F \
                           *.VHD \
                           *.VHDL
  RECURSIVE              = YES
  EXCLUDE                =
  EXCLUDE_SYMLINKS       = NO
  EXCLUDE_PATTERNS       = 
  EXCLUDE_SYMBOLS        =
  EXAMPLE_PATH           =
  EXAMPLE_PATTERNS       = *
  EXAMPLE_RECURSIVE      = NO
  IMAGE_PATH             =
  INPUT_FILTER           =
  FILTER_PATTERNS        =
  FILTER_SOURCE_FILES    = NO
  #---------------------------------------------------------------------------
  # configuration options related to source browsing
  #---------------------------------------------------------------------------
  # GG changed below to NO 7/16/2010
  SOURCE_BROWSER         = NO
  INLINE_SOURCES         = NO
  STRIP_CODE_COMMENTS    = YES
  # GG changed below to NO 7/16/2010
  REFERENCED_BY_RELATION = NO
  # GG changed below to NO 7/16/2010
  REFERENCES_RELATION    = NO
  # GG changed below to NO 7/16/2010
  REFERENCES_LINK_SOURCE = NO
  USE_HTAGS              = NO
  # GG changed below to NO 7/16/2010
  VERBATIM_HEADERS       = NO
  #---------------------------------------------------------------------------
  # configuration options related to the alphabetical class index
  #---------------------------------------------------------------------------
  ALPHABETICAL_INDEX     = NO
  COLS_IN_ALPHA_INDEX    = 5
  IGNORE_PREFIX          =
  #---------------------------------------------------------------------------
  # configuration options related to the HTML output
  #---------------------------------------------------------------------------
  GENERATE_HTML          = YES
  HTML_OUTPUT            = html
  HTML_FILE_EXTENSION    = .html
  HTML_HEADER            =
  HTML_FOOTER            = external_docs/files/footer.html
  HTML_STYLESHEET        =
  HTML_ALIGN_MEMBERS     = YES
  GENERATE_HTMLHELP      = NO
  GENERATE_DOCSET        = NO
  DOCSET_FEEDNAME        = "Doxygen generated docs"
  DOCSET_BUNDLE_ID       = org.doxygen.Project
  HTML_DYNAMIC_SECTIONS  = NO
  CHM_FILE               =
  HHC_LOCATION           =
  GENERATE_CHI           = NO
  BINARY_TOC             = NO
  TOC_EXPAND             = NO
  #GG line below changed
  DISABLE_INDEX          = YES
  ENUM_VALUES_PER_LINE   = 1
  #GG line below changed
  GENERATE_TREEVIEW      = NO
  TREEVIEW_WIDTH         = 250
  #---------------------------------------------------------------------------
  # configuration options related to the LaTeX output
  #---------------------------------------------------------------------------
  GENERATE_LATEX         = NO
  LATEX_OUTPUT           = latex
  LATEX_CMD_NAME         = latex
  MAKEINDEX_CMD_NAME     = makeindex
  COMPACT_LATEX          = NO
  PAPER_TYPE             = a4wide
  EXTRA_PACKAGES         =
  LATEX_HEADER           =
  PDF_HYPERLINKS         = YES
  USE_PDFLATEX           = YES
  LATEX_BATCHMODE        = NO
  LATEX_HIDE_INDICES     = NO
  #---------------------------------------------------------------------------
  # configuration options related to the RTF output
  #---------------------------------------------------------------------------
  GENERATE_RTF           = NO
  RTF_OUTPUT             = rtf
  COMPACT_RTF            = NO
  RTF_HYPERLINKS         = NO
  RTF_STYLESHEET_FILE    =
  RTF_EXTENSIONS_FILE    =
  #---------------------------------------------------------------------------
  # configuration options related to the man page output
  #---------------------------------------------------------------------------
  GENERATE_MAN           = NO
  MAN_OUTPUT             = man
  MAN_EXTENSION          = .3
  MAN_LINKS              = NO
  #---------------------------------------------------------------------------
  # configuration options related to the XML output
  #---------------------------------------------------------------------------
  GENERATE_XML           = NO
  XML_OUTPUT             = xml
  XML_SCHEMA             =
  XML_DTD                =
  XML_PROGRAMLISTING     = YES
  #---------------------------------------------------------------------------
  # configuration options for the AutoGen Definitions output
  #---------------------------------------------------------------------------
  GENERATE_AUTOGEN_DEF   = NO
  #---------------------------------------------------------------------------
  # configuration options related to the Perl module output
  #---------------------------------------------------------------------------
  GENERATE_PERLMOD       = NO
  PERLMOD_LATEX          = NO
  PERLMOD_PRETTY         = YES
  PERLMOD_MAKEVAR_PREFIX =
  #---------------------------------------------------------------------------
  # Configuration options related to the preprocessor
  #---------------------------------------------------------------------------
  ENABLE_PREPROCESSING   = YES
  MACRO_EXPANSION        = YES
  EXPAND_ONLY_PREDEF     = YES
  SEARCH_INCLUDES        = YES
  INCLUDE_PATH           =
  INCLUDE_FILE_PATTERNS  =
  PREDEFINED             = EXPORT  =
  EXPAND_AS_DEFINED      =
  SKIP_FUNCTION_MACROS   = YES
  #---------------------------------------------------------------------------
  # Configuration::additions related to external references
  #---------------------------------------------------------------------------
  TAGFILES               =
  GENERATE_TAGFILE       =
  ALLEXTERNALS           = NO
  EXTERNAL_GROUPS        = YES
  PERL_PATH              = /usr/bin/perl
  #---------------------------------------------------------------------------
  # Configuration options related to the dot tool
  #---------------------------------------------------------------------------
  CLASS_DIAGRAMS         = NO
  MSCGEN_PATH            =
  HIDE_UNDOC_RELATIONS   = YES
  HAVE_DOT               = NO
  CLASS_GRAPH            = YES
  COLLABORATION_GRAPH    = YES
  GROUP_GRAPHS           = YES
  UML_LOOK               = NO
  TEMPLATE_RELATIONS     = NO
  INCLUDE_GRAPH          = YES
  INCLUDED_BY_GRAPH      = YES
  CALL_GRAPH             = YES
  CALLER_GRAPH           = NO
  GRAPHICAL_HIERARCHY    = YES
  DIRECTORY_GRAPH        = YES
  DOT_IMAGE_FORMAT       = png
  DOT_PATH               =
  DOTFILE_DIRS           =
  DOT_GRAPH_MAX_NODES    = 50
  MAX_DOT_GRAPH_DEPTH    = 1000
  DOT_TRANSPARENT        = YES
  DOT_MULTI_TARGETS      = NO
  GENERATE_LEGEND        = YES
  DOT_CLEANUP            = YES
  #---------------------------------------------------------------------------
  # Configuration::additions related to the search engine
  #---------------------------------------------------------------------------
  SEARCHENGINE           = NO
2
What happens if you set EXTRACT_ALL = YES? You shouldn't have to do that is this case but...Laurent Couvidou
Good catch ! it works now. Thanks a lot.Aneesh Narayanan

2 Answers

3
votes

From the doxygen FAQ:

When I set EXTRACT_ALL to NO none of my functions are shown in the documentation.

In order for global functions, variables, enums, typedefs, and defines to be documented you should document the file in which these commands are located using a comment block containing a \file (or @file) command.

For member functions or functions that are part of a namespace you should document either the class or namespace.

Can you check that you have included a \file command in the file BBB.h or try documenting the namespace NAME2?

0
votes

If EXTRACT_ALL=YES does not work, try to format the doc as following:

// Format:
/**
*
*/

// ex:
//BBB.h
namespace NAME2
{
  /**
  * \brief This is a function      
  *
  * \param b is a float
  *
  * This is a function
  */
  void function(float b);
 }