Improve Doxygen support

Except Graphviz's `dot` Doxygen may use few other utilities like
`mscgen` (Message Sequence Chart) and `dia` (Diagram Editor).

Now this module allows to manage Doxygen settings from `CMakeLists.txt`
and forget about `Doxyfile`s. Also it provides a helper function
to add a target to generate documentation: `doxygen_add_docs`.

Implement code review notes:

- Introduce `COMPONENTS` to find: `dot`, `mscgen` and `dia`;
- Deprecate variables `DOXYGEN_SKIP_DOT`, `DOXYGEN_EXECUTABLE`,
  `DOXYGEN_DOT_EXECUTABLE`, `DOXYGEN_DOT_FOUND` in favour of
  `doxygen_add_docs ` usage instead;
- Properly handle paths to found tools in Windows;
- Prevent adding a custom target if Doxygen was not really found;
- Introduce exported (executable) targets for found components.

Co-Author: Craig Scott <craig.scott@crascit.com>
This commit is contained in:
Alex Turbov
2017-04-10 16:37:35 +07:00
parent ae5f98a5e3
commit 59ffabfeec
8 changed files with 1115 additions and 123 deletions
+10
View File
@@ -0,0 +1,10 @@
doxygen-improvements
--------------------
* The :module:`FindDoxygen` module learned to control Doxygen behavior using
CMake variables and generate documentation via the newly added
:command:`doxygen_add_docs` function. The Doxygen input file (``Doxyfile``)
is automatically generated and doxygen is run as part of a custom target.
A number of doxygen-related variables have been deprecated. Additional
components can be specified to find optional tools: ``dot``, ``mscgen``
and ``dia``.