mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 13:20:47 -06:00
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>
19 lines
569 B
CMake
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()
|