Skip to content

chinmaygarde/doxygen2docset

Repository files navigation

Dash or Zeal Docsets from Doxygen Documentation

CircleCI

Converts Doxygen Documentation to a Dash or Zeal Docset.

Installation

Download one of the pre-built releases for supported platforms or build locally.

Usage

First, generate Doxygen documentation with the GENERATE_DOCSET option enabled. Then generate the Docset with:

doxgen2docset --doxygen <path to doxygen source> --docset <path to docset dir> [--help]

Examples

Docset Feeds for the Flutter Engine are available. A small Debian VM instance monitors GitHub repositories and runs the doxygen2docset tool on Doxygen generated docs to update Dash feeds regularly.

Options

  --doxygen       Required: The path the HTML sources generated by Doxygen,
                  see the explanatory section below on how to configure Doxygen.

  --docset        Required: The path to the directory where this tool will
                  generate the docset. The name of the docset will be derived
                  from the Docset bundle identifier. For example, if the
                  Docset bundle identifer is, "com.exmple.docs", a docset
                  named "com.exmple.docs.docset" will be generated in this
                  directory.

                  To configure the docset bundle identifier, set the
                  DOCSET_BUNDLE_ID property in your Doxyfile before generating
                  documentation.

  --help          Print this documentation.

Preparing Doxygen for Docsets

  • In the Doxyfile for your project, make sure the following options are set:
  • Invoke Doxygen to generate HTML documentation. On a successful invocation of doxygen with the required flags, the html/ directory should be generated.
    • This tool depends on reading the following files generated by Doxygen. If these files are absent, the docset cannot be generated.
      • Tokens.xml
      • Info.plist

Building the Tool Locally

Requirements: Mac or Linux Host, Clang or GCC (C++ 14 capable), and, CMake.

  • Make sure to pull submodules: git submodule update --init --recursive.
  • Create the build directory: mkdir build/.
  • Invoke CMake and build. cd build/ && cmake ../ && make.
  • The executable is present in ./build/source/doxygen2docset.
  • The unit-test target is present in ./build/tests/doxygen2docset_unittests.