.. cmake-extended-doxygen documentation master file
cmake-extended-doxygen
======================
This repository ships a custom integration of `doxygen `_ into `cmake `_ built on top of the `default integration shipped with cmake `_.
While the default integration provides the function `doxygen_add_docs `_ to set up a target dedicated to documentation, it does not provide any means to collect ``doxygen``'s input automatically.
This forces the developer into having to manually specify and maintain a list of sources going into documentation as well as a list of include directories to be stripped by ``doxygen``.
Apart from the maintainance overhead, this also leads to redundancies: after all, the set of source files and include directories are already known to ``cmake``, so there should be a way of leveraging this information when specifying ``doxygen``'s input.
To automate the process of collecting ``doxygen``'s input, this repository ships
* the custom target property :prop_tgt:`GENERATE_DOXYGEN` alongside its source file equivalent :prop_sf:`GENERATE_DOXYGEN` to control which source files go into documentation,
* the function :command:`collect_doxygen_input` to automatically populate the list of sources and include directories passed to ``doxygen`` and
* the function :command:`doxygen_add_documentation` replacing ``doxygen_add_docs`` (it's almost a drop-in-replacement).
Getting started
---------------
.. toctree::
:hidden:
getting_started
Please follow :ref:`getting-started`.
Modules
-------
.. toctree::
:maxdepth: 1
:caption: Currently, the following modules are shipped:
module/DoxygenAddDocumentation
module/ExtendedDoxygen
.. toctree::
:hidden:
prop_sf/GenerateDoxygen
prop_tgt/GenerateDoxygen
variable/DoxygenGenerateDoxygen
Known limitations
-----------------
The implementation shipped in this repository is still in early development.
Hence, there are some limitations to keep in mind when using ``cmake-extended-doxygen`` (apart from the usual things that apply to early development projects).
Please consult :ref:`known-limitations` for a list of known limitations.
.. toctree::
:hidden:
limitations
Indices and tables
------------------
* :ref:`genindex`
* :ref:`search`
License
-------
Licensed under `BSD 3-Clause License `_.