doc¶
There are two documentation systems used. doxygen is used to generate
either HTML or XML containing the technical API documentation. sphinx is
used for separate documentation located in /doc and also to build the
complete documentation in a consistent style.
Most of the time, you want to use a sphinx-based build.
doxygen¶
Note
You may notice doxygen runs seperate in CI as analyse/doxygen. Due
to a bug in Doxygen warnings will be emitted when XML output is enabled.
This job builds only HTML so that valid warnings can be caught and
reported on by CI. https://bugzilla.gnome.org/show_bug.cgi?id=792676
When configuring with -DDOC:STRING=doxygen target doc will be added.
The target will run doxygen over all source code. This generates HTML API
documentation.
This will not run any sphinx-based jobs and therefore will not build any
documentation stored in /doc.
When also configuring with -DWERROR:BOOL=ON all warnings generated by
doxygen will be turned into errors.
Target doc_clean will also be added and removes build products and temporary
files related to the doc target itself.
sphinx-based¶
When configuring with -DDOC:STRING=${BUILDER} where ${BUILDER} is not
one of either OFF or doxygen target doc will be added. The target
will then run sphinx with builder type ${BUILDER}.
doxygen will still be used to generate XML output for API documentation
of source files. Said XML is then used to generate the final output.
When also configuring with -DWERROR:BOOL=ON all warnings generated by
sphinx, but not doxygen, will be turned into errors.
By default sphinx caches both input and output files to speed things up.
Target doc_nocache will force reading all source files, this ensures dynamic
directives such as toctrees are updated properly while still caching things that
haven’t changed properly.
Target doc_clean will also be added and removes build products and temporary
files related to the doc target itself.
Refer to http://www.sphinx-doc.org/en/master/builders.html for builder details.