READ THIS, OFTEN OVERLOOKED:
  To document global objects (functions, enums, typedefs, ...) there must be a
  /** @file */ documenting comment in the file.

  For Python, turn OPTIMIZE_OUTPUT_JAVA to YES.

CLI:
  doxygen -g       generate default Doxyfile
  doxygen          generate the documentation from the present Doxyfile

DOXYFILE:
  PROJECT_NAME         name of the project
  PROJECT_BRIEF        brief summary of the project
  PROJECT_LOGO         project logo file, should fiut into 55 x 200 pixels

  INPUT                input source files and/or folders, separate with spaces
  RECURSIVE            traverse the source directories recursively? (YES or NO)
  OUTPUT_DIRECTORY     folder to save the documentation to

  EXTRACT_ALL          document everything, even private and undocumented stuff (YES or NO)
  
  CLASS_DIAGRAMS       generate class diagrams? (YES by default)
  CLASS_GRAPH          generate class graphs? better than CLASS_DIAGRAMS (YES by default, YES overrides CLASS_DIAGRAMS)

SOURCE COMMENTS:

C-like:
  /** @file This documents a file. This has to be there in order for global
      elements (functions, typdefes, enums, ...) to be documented. */

  /**
    @brief Brief doc for myClass.
    
    Detailed doc for myClass.
  */
  class myClass
  {
    /// 3 '/'s for a one-line comment (BEFORE an element), or alternatively "//!"
    int myMember;
    int myMember2; ///< comment AFTER an element has an additional '<'
    int myMember3; /**< or like this */

    /**
      Doc for myMethod.

      @param a Doc for parameter a.
      @param b Doc for parameter b.
      @return Doc for return value.
    */
    int myMethod(int a, int b);
  };

Python:

  ## @package mypackage
  #  Brief doc for mypackage.

  ## Brief doc for MyClass.
  #
  #  Detailed doc for MyClass.
  class MyClass:

    ## Doc for myMember (doc AFTER the element is NOT supported).
    myMember = 0

    ## Doc for myFunc
    #
    #  @param a Doc for parameter a.
    #  @param b Doc for parameter b.
    #  @return  Doc for return value.
    def myFunc(a, b):
      pass
