Files
CMake/Tests/FindDoxygen/DotComponentTestTest/CMakeLists.txt
Alex Turbov 59ffabfeec 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>
2017-05-24 10:15:45 +07:00

19 lines
569 B
CMake

cmake_minimum_required(VERSION 3.8)
project(TestFindDoxygenDot VERSION 1.0 LANGUAGES NONE)
# Testing a new signature w/ components
find_package(Doxygen REQUIRED COMPONENTS dot)
# No backwards compatibility expected when component form is used
if(TARGET Doxygen::doxygen)
if(DOXYGEN)
message(FATAL_ERROR "DOXYGEN unexpectedly defined with component form")
endif()
else()
message(FATAL_ERROR "Import target Doxygen::doxygen not defined")
endif()
if(NOT TARGET Doxygen::dot)
message(FATAL_ERROR "Import target Doxygen::dot not defined")
endif()