Skip to content
  • Alex Turbov's avatar
    Improve Doxygen support · 59ffabfe
    Alex Turbov authored
    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>
    59ffabfe