Doxygen uses cmake (http://www.cmake.org/) to build executables for various platforms.
See the Installation section of the manual for dependencies and instructions:
https://www.doxygen.nl/manual/install.html

For a one-step self-contained environment, you can also use Docker to build and run the included Dockerfile.

The first step is to create a build directory where the output should be stored.
Doxygen can be fully built outside of the source tree.

The second step is to invoke cmake from within the build directory with the desired generator.

For Linux/Unix systems do the following:

    mkdir build
    cd build
    cmake -G "Unix Makefiles" path/to/root/of/doxygen/source/tree
    make
Note: "path/to/root/of/doxygen/source/tree" is not the "src" directory but its parent.

This also works for MacOS, but if XCode is installed you can also generate an XCode project file

    cmake -G XCode path/to/root/of/doxygen/source/tree

For Windows one can generate a Visual Studio project using

    cmake -G "Visual Studio 12 2013" path\to\root\of\doxygen\source\tree

(this is for Visual Studio 12, there are typically also generators for other versions of
Visual Studio or other compiler environments like MinGW)

Doxygen's cmake configuration provides a number of options:
- build_wizard    Build the GUI frontend for doxygen.
- build_app       Example showing how to embed doxygen in an application.
- build_parse     Parses source code and dumps the dependencies between the code elements.
- build_search    Build external search tools (doxysearch and doxyindexer).
- build_doc       Build user manual (HTML and PDF).
- build_doc_chm   Build user manual (CHM).
- use_libclang    Add support for libclang parsing.
- use_sys_spdlog  Use system spdlog library instead of the one bundled.
- use_sys_fmt     Use system fmt library instead of the one bundled.
- use_sys_sqlite3 Use system sqlite3 library instead of the one bundled.
- win_static      Link with /MT in stead of /MD on windows.
- force_qt=<vers> Forces doxywizard to build using the specified major version, this can be Qt5 or Qt6

An option can be turned on, by adding -D<option>=ON as a command line option, this can be
done when generating the initial build files, but also afterwards, i.e. to enable building
of the documentation after an initial cmake -G run, do

    cmake -Dbuild_doc=ON path/to/root/of/doxygen/source/tree

To turn the option off use

    cmake -Dbuild_doc=OFF path/to/root/of/doxygen/source/tree

To see the current value is of the various options, you can run

    cmake -L path/to/root/of/doxygen/source/tree

The build target for building the documentation is 'docs' and the build target for
the regression tests is 'tests'
