Blame doc/index.doc

Packit Service 50c9f2
/******************************************************************************
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * 
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Permission to use, copy, modify, and distribute this software and its
Packit Service 50c9f2
 * documentation under the terms of the GNU General Public License is hereby 
Packit Service 50c9f2
 * granted. No representations are made about the suitability of this software 
Packit Service 50c9f2
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit Service 50c9f2
 * See the GNU General Public License for more details.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 * Documents produced by Doxygen are derivative works derived from the
Packit Service 50c9f2
 * input used in their production; they are not affected by this license.
Packit Service 50c9f2
 *
Packit Service 50c9f2
 */
Packit Service 50c9f2
/*! 
Packit Service 50c9f2
\mainpage 
Packit Service 50c9f2
Packit Service 50c9f2
\if logo_on
Packit Service 50c9f2
<center>
Packit Service 50c9f2
\htmlonly
Packit Service 50c9f2
doxygen
Packit Service 50c9f2
Version: $(VERSION)
Packit Service 50c9f2
\endhtmlonly
Packit Service 50c9f2
</center>
Packit Service 50c9f2
\endif
Packit Service 50c9f2
Packit Service 50c9f2

Introduction

Packit Service 50c9f2
Doxygen is the de facto standard tool for generating documentation from
Packit Service 50c9f2
annotated C++ sources, but it also supports other popular programming 
Packit Service 50c9f2
languages such as C, Objective-C, C#, PHP, Java, Python, IDL 
Packit Service 50c9f2
(Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D.
Packit Service 50c9f2
Packit Service 50c9f2
Doxygen can help you in three ways:
Packit Service 50c9f2
    Packit Service 50c9f2
  1. It can generate an on-line documentation browser (in HTML) and/or an
  2. Packit Service 50c9f2
         off-line reference manual (in \LaTeX) from a set 
    Packit Service 50c9f2
         of documented source files. 
    Packit Service 50c9f2
         There is also support for generating output in RTF (MS-Word), 
    Packit Service 50c9f2
         PostScript, hyperlinked PDF, compressed HTML, and Unix man pages.
    Packit Service 50c9f2
         The documentation is extracted directly from the sources, which
    Packit Service 50c9f2
         makes it much easier to keep the documentation consistent with the
    Packit Service 50c9f2
         source code.
    Packit Service 50c9f2
  3. You can \ref extract_all "configure" doxygen to extract the code structure
  4. Packit Service 50c9f2
         from undocumented source files. This is very useful to quickly 
    Packit Service 50c9f2
         find your way in large source distributions. 
    Packit Service 50c9f2
         Doxygen can also visualize the relations between the various elements 
    Packit Service 50c9f2
         by means of include dependency graphs, inheritance diagrams,
    Packit Service 50c9f2
         and collaboration diagrams, which are all generated automatically.
    Packit Service 50c9f2
  5. You can also use doxygen for creating normal documentation (as I did
  6. Packit Service 50c9f2
         for the doxygen user manual and web-site).
    Packit Service 50c9f2
    Packit Service 50c9f2
    Packit Service 50c9f2
    Doxygen is developed under Mac OS X and Linux, but is set-up to be highly 
    Packit Service 50c9f2
    portable. As a result, it runs on most other Unix flavors as well. 
    Packit Service 50c9f2
    Furthermore, executables for Windows are available.
    Packit Service 50c9f2
    Packit Service 50c9f2
    \n
    Packit Service 50c9f2
    This manual is divided into three parts, each of which is divided into several sections.
    Packit Service 50c9f2
    Packit Service 50c9f2
    The first part forms a user manual:
    Packit Service 50c9f2
      Packit Service 50c9f2
    • Section \ref install discusses how to
    • Packit Service 50c9f2
            download, compile and install
      Packit Service 50c9f2
                           doxygen for your platform.
      Packit Service 50c9f2
    • Section \ref starting tells you how to generate your first piece of
    • Packit Service 50c9f2
                           documentation quickly. 
      Packit Service 50c9f2
    • Section \ref docblocks demonstrates the various ways that code can
    • Packit Service 50c9f2
                       be documented.
      Packit Service 50c9f2
    • Section \ref markdown show the Markdown formatting supported by doxygen.
    • Packit Service 50c9f2
    • Section \ref lists shows how to create lists.
    • Packit Service 50c9f2
    • Section \ref grouping shows how to group things together.
    • Packit Service 50c9f2
    • Section \ref formulas shows how to insert formulas in the documentation.
    • Packit Service 50c9f2
    • Section \ref diagrams describes the diagrams and graphs that doxygen can generate.
    • Packit Service 50c9f2
    • Section \ref preprocessing explains how doxygen deals with macro definitions.
    • Packit Service 50c9f2
    • Section \ref autolink shows how to put links to files, classes,
    • Packit Service 50c9f2
                       and members in the documentation.
      Packit Service 50c9f2
    • Section \ref output shows how to generate the various output formats
    • Packit Service 50c9f2
                       supported by doxygen.
      Packit Service 50c9f2
    • Section \ref searching shows various ways to search in the HTML documentation.
    • Packit Service 50c9f2
    • Section \ref extsearch shows how use the external search and index tools
    • Packit Service 50c9f2
    • Section \ref customize explains how you can customize the output generated
    • Packit Service 50c9f2
                       by doxygen.
      Packit Service 50c9f2
    • Section \ref custcmd show how to define and use custom commands in your comments.
    • Packit Service 50c9f2
    • Section \ref external explains how to let doxygen create links to externally generated documentation.
    • Packit Service 50c9f2
    • Section \ref faq gives answers to frequently asked questions.
    • Packit Service 50c9f2
    • Section \ref trouble tells you what to do when you have problems.
    • Packit Service 50c9f2
      Packit Service 50c9f2
      Packit Service 50c9f2
      The second part forms a reference manual:
      Packit Service 50c9f2
      Packit Service 50c9f2
        Packit Service 50c9f2
      • Section \ref features presents an overview of what doxygen can do.
      • Packit Service 50c9f2
      • Section \ref doxygen_usage shows how to use the \c doxygen program.
      • Packit Service 50c9f2
      • Section \ref doxywizard_usage shows how to use the \c doxywizard program.
      • Packit Service 50c9f2
      • Section \ref config shows how to fine-tune doxygen, so it
      • Packit Service 50c9f2
                      generates the documentation you want.
        Packit Service 50c9f2
      • Section \ref commands shows an overview of the special commands that can be
      • Packit Service 50c9f2
                      used within the documentation.
        Packit Service 50c9f2
      • Section \ref htmlcmds shows an overview of the HTML commands that
      • Packit Service 50c9f2
                      can be used within the documentation.
        Packit Service 50c9f2
      • Section \ref xmlcmds shows an overview of the C# style XML commands that
      • Packit Service 50c9f2
                      can be used within the documentation.
        Packit Service 50c9f2
        Packit Service 50c9f2
        Packit Service 50c9f2
        The third part provides information for developers:
        Packit Service 50c9f2
        Packit Service 50c9f2
          Packit Service 50c9f2
        • Section \ref arch gives a global overview of how doxygen is internally
        • Packit Service 50c9f2
              structured.
          Packit Service 50c9f2
        • Section \ref perlmod shows how to use the PerlMod output.
        • Packit Service 50c9f2
        • Section \ref langhowto explains how to add support for new
        • Packit Service 50c9f2
                        output languages.
          Packit Service 50c9f2
          Packit Service 50c9f2
          Packit Service 50c9f2
          \n

          Doxygen license

          Packit Service 50c9f2
          \addindex license
          Packit Service 50c9f2
          \addindex GPL
          Packit Service 50c9f2
          Packit Service 50c9f2
          Copyright © 1997-2016 by 
          Packit Service 50c9f2
          Dimitri van Heesch.

          Packit Service 50c9f2
          Packit Service 50c9f2
          Permission to use, copy, modify, and distribute this software and its
          Packit Service 50c9f2
          documentation under the terms of the GNU General Public License is hereby 
          Packit Service 50c9f2
          granted. No representations are made about the suitability of this software 
          Packit Service 50c9f2
          for any purpose. It is provided "as is" without express or implied warranty.
          Packit Service 50c9f2
          See the 
          Packit Service 50c9f2
          Packit Service 50c9f2
          GNU General Public License
          Packit Service 50c9f2
          for more details.
          Packit Service 50c9f2

          Packit Service 50c9f2
          Documents produced by doxygen are derivative works derived from the
          Packit Service 50c9f2
          input used in their production; they are not affected by this license.
          Packit Service 50c9f2
          Packit Service 50c9f2

          User examples

          Packit Service 50c9f2
          Packit Service 50c9f2
          Doxygen supports a number of \ref output "output formats" where HTML is the
          Packit Service 50c9f2
          most popular one. I've gathered 
          Packit Service 50c9f2
          some nice examples 
          Packit Service 50c9f2
          of real-life projects using doxygen.
          Packit Service 50c9f2
          Packit Service 50c9f2
          These are part of a larger
          Packit Service 50c9f2
          list of projects 
          Packit Service 50c9f2
          that use doxygen.
          Packit Service 50c9f2
          If you know other projects, let me 
          Packit Service 50c9f2
          know and I'll add them. 
          Packit Service 50c9f2
          Packit Service 50c9f2

          Future work

          Packit Service 50c9f2
          Although doxygen is successfully used by large number of companies and 
          Packit Service 50c9f2
          open source projects already, there is always room for improvement. 
          Packit Service 50c9f2

          Packit Service 50c9f2
          You can submit enhancement requests in
          Packit Service 50c9f2
          the bug tracker.
          Packit Service 50c9f2
          Make sure the severity of the bug report is set to "enhancement".
          Packit Service 50c9f2
          Packit Service 50c9f2

          Acknowledgments

          Packit Service 50c9f2
          \addindex acknowledgments
          Packit Service 50c9f2
          Thanks go to:
          Packit Service 50c9f2
            Packit Service 50c9f2
          • \addindex Doc++
          • Packit Service 50c9f2
                Malte Zöckler and Roland Wunderling, authors of DOC++.
            Packit Service 50c9f2
                The first version of doxygen borrowed some code of an old version of DOC++. 
            Packit Service 50c9f2
                Although I have rewritten practically all code since then, DOC++ has still 
            Packit Service 50c9f2
                given me a good start in writing doxygen.
            Packit Service 50c9f2
          • All people at Qt Software, for creating a beautiful GUI Toolkit
          • Packit Service 50c9f2
                (which is very useful as a Windows/Unix platform abstraction layer :-)
            Packit Service 50c9f2
          • My brother Frank
          • Packit Service 50c9f2
                for rendering the logos.
            Packit Service 50c9f2
          • Harm van der Heijden for adding HTML help support.
          • Packit Service 50c9f2
          • Wouter Slegers of
          • Packit Service 50c9f2
                Your Creative Solutions 
            Packit Service 50c9f2
                for registering the www.doxygen.org domain.
            Packit Service 50c9f2
          • Parker Waechter for adding the RTF output generator.
          • Packit Service 50c9f2
          • Joerg Baumann, for adding conditional documentation blocks,
          • Packit Service 50c9f2
                PDF links, and the configuration generator.
            Packit Service 50c9f2
          • Tim Mensch for adding the todo command.
          • Packit Service 50c9f2
          • Christian Hammond for redesigning the web-site.
          • Packit Service 50c9f2
          • Ken Wong for providing the HTML tree view code.
          • Packit Service 50c9f2
          • Talin for adding support for C# style comments with XML markup.
          • Packit Service 50c9f2
          • Petr Prikryl for coordinating the internationalization support.
          • Packit Service 50c9f2
                All language maintainers for providing translations into many languages.
            Packit Service 50c9f2
          • The band Porcupine Tree for
          • Packit Service 50c9f2
                providing hours of great music to listen to while coding.
            Packit Service 50c9f2
          • many, many others for suggestions, patches and bug reports.
          • Packit Service 50c9f2
            Packit Service 50c9f2
            Packit Service 50c9f2
            \htmlonly
            Packit Service 50c9f2
            Go to the next section.
            Packit Service 50c9f2
            \endhtmlonly
            Packit Service 50c9f2
            Packit Service 50c9f2
            */
            Packit Service 50c9f2