| 
					
				 | 
			
			
				@@ -5,188 +5,291 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 FindDoxygen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ----------- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Doxygen is a documentation generation tool (see https://www.doxygen.nl). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-This module looks for Doxygen and some optional tools it supports: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Finds `Doxygen <https://www.doxygen.nl>`_, a source code documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+generator, along with some optional supporting tools, and provides a command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+for integrating Doxygen-based documentation into CMake projects: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen [<version>] [...] [COMPONENTS <components>...] [...]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Components 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+^^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Additional Doxygen supporting tools, can be specified as components with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+:command:`find_package()` command: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen [COMPONENTS <components>...]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Supported components include: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``doxygen`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Finds the ``doxygen`` executable.  This component is always automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  implied, even if not requested. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``dot`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  `Graphviz <https://graphviz.org>`_ ``dot`` utility used to render various 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  graphs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Finds the `Graphviz <https://graphviz.org>`_ ``dot`` utility, used for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  rendering graphs and diagrams as part of the documentation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``mscgen`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  `Message Chart Generator <https://www.mcternan.me.uk/mscgen/>`_ utility used 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  by Doxygen's ``\msc`` and ``\mscfile`` commands. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Finds the `Message Chart Generator <https://www.mcternan.me.uk/mscgen/>`_ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  utility used by Doxygen's ``\msc`` and ``\mscfile`` commands. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ``dia`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  `Dia <https://wiki.gnome.org/Apps/Dia>`_ the diagram editor used by Doxygen's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ``\diafile`` command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  These tools are available as components in the :command:`find_package` command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  For example: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Finds the `Dia <https://wiki.gnome.org/Apps/Dia>`_ diagram editor used by 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Doxygen's ``\diafile`` command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Imported Targets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+^^^^^^^^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  # Require dot, treat the other components as optional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  find_package(Doxygen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               REQUIRED dot 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               OPTIONAL_COMPONENTS mscgen dia) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This module provides the following :ref:`Imported Targets`, each of which is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+defined if the corresponding component was requested and its associated 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+executable was found: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-The following variables are defined by this module: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Doxygen::doxygen`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. variable:: DOXYGEN_FOUND 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Imported executable target encapsulating the ``doxygen`` executable usage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  requirements, available if Doxygen is found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  True if the ``doxygen`` executable was found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Doxygen::dot`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Imported executable target encapsulating the ``dot`` executable usage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  requirements, available if the above ``dot`` component is found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. variable:: DOXYGEN_VERSION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Doxygen::mscgen`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  The version reported by ``doxygen --version``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Imported executable target encapsulating the ``mscgen`` executable usage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  requirements, available if the above ``mscgen`` component is found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Imported Targets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Doxygen::dia`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Imported executable target encapsulating the ``dia`` executable usage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  requirements, available if the above ``dia`` component is found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+These targets can be used in commands such as :command:`add_custom_command` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+and are preferred over the older, now-deprecated variables like 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``DOXYGEN_EXECUTABLE``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Result Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ^^^^^^^^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This module defines the following variables: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``Doxygen_FOUND`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Boolean indicating whether (the requested version of) ``doxygen`` executable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  and all requested required components are found.  For backward compatibility, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the ``DOXYGEN_FOUND`` variable is also set, except it has boolean value of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``YES`` or ``NO``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-The module defines ``IMPORTED`` targets for Doxygen and each component found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-These can be used as part of custom commands, etc. and should be preferred over 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-old-style (and now deprecated) variables like ``DOXYGEN_EXECUTABLE``. The 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-following import targets are defined if their corresponding executable could be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-found (the component import targets will only be defined if that component was 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-requested): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``DOXYGEN_VERSION`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  The version of Doxygen found (as reported by ``doxygen --version``). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* ``Doxygen::doxygen`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* ``Doxygen::dot`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* ``Doxygen::mscgen`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-* ``Doxygen::dia`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Commands 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Functions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This module provides the following command: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. command:: doxygen_add_docs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .. versionadded:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  This function is intended as a convenience for adding a target for generating 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  documentation with Doxygen. It aims to provide sensible defaults so that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  projects can generally just provide the input files and directories and that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  will be sufficient to give sensible results. The function supports the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ability to customize the Doxygen configuration used to build the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  documentation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Adds a custom target for generating documentation with Doxygen during the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  build phase: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   .. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    doxygen_add_docs(targetName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [filesOrDirs...] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [ALL] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [USE_STAMP_FILE] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [WORKING_DIRECTORY dir] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [COMMENT comment] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [CONFIG_FILE filename]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  The function constructs a ``Doxyfile`` and defines a custom target that runs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Doxygen on that generated file. The listed files and directories are used as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  the ``INPUT`` of the generated ``Doxyfile`` and they can contain wildcards. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Any files that are listed explicitly will also be added as ``SOURCES`` of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  custom target so they will show up in an IDE project's source list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  So that relative input paths work as expected, by default the working 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  directory of the Doxygen command will be the current source directory (i.e. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :variable:`CMAKE_CURRENT_SOURCE_DIR`). This can be overridden with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ``WORKING_DIRECTORY`` option to change the directory used as the relative 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  base point. Note also that Doxygen's default behavior is to strip the working 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  directory from relative paths in the generated documentation (see the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ``STRIP_FROM_PATH`` `Doxygen config option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  <https://www.doxygen.nl/manual/config.html>`_ for details). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  If provided, the optional ``comment`` will be passed as the ``COMMENT`` for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  the :command:`add_custom_target` command used to create the custom target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  internally. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. versionadded:: 3.27 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If ``CONFIG_FILE`` is set, the given file provided with full-path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    will be used as doxygen configuration file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. versionadded:: 3.12 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If ``ALL`` is set, the target will be added to the default build target. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. versionadded:: 3.16 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If ``USE_STAMP_FILE`` is set, the custom command defined by this function will 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    create a stamp file with the name ``<targetName>.stamp`` in the current 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    binary directory whenever doxygen is re-run.  With this option present, all 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    items in ``<filesOrDirs>`` must be files (i.e. no directories, symlinks or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    wildcards) and each of the files must exist at the time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ``doxygen_add_docs()`` is called.  An error will be raised if any of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    items listed is missing or is not a file when ``USE_STAMP_FILE`` is given. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    A dependency will be created on each of the files so that doxygen will only 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    be re-run if one of the files is updated.  Without the ``USE_STAMP_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    option, doxygen will always be re-run if the ``<targetName>`` target is built 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    regardless of whether anything listed in ``<filesOrDirs>`` has changed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  The contents of the generated ``Doxyfile`` can be customized by setting CMake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  variables before calling ``doxygen_add_docs()``. Any variable with a name of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  the form ``DOXYGEN_<tag>`` will have its value substituted for the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  corresponding ``<tag>`` configuration option in the ``Doxyfile``. See the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  `Doxygen documentation <https://www.doxygen.nl/manual/config.html>`_ for the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  full list of supported configuration options. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  Some of Doxygen's defaults are overridden to provide more appropriate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  behavior for a CMake project. Each of the following will be explicitly set 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  unless the variable already has a value before ``doxygen_add_docs()`` is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  called (with some exceptions noted): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_HAVE_DOT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Set to ``YES`` if the ``dot`` component was requested and it was found, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ``NO`` otherwise. Any existing value of ``DOXYGEN_HAVE_DOT`` is ignored. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_DOT_MULTI_TARGETS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    doxygen_add_docs( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <target-name> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      [<files-or-dirs>...] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      [ALL] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      [USE_STAMP_FILE] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      [WORKING_DIRECTORY <dir>] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      [COMMENT <comment>] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      [CONFIG_FILE <file>] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  By default, this convenience command also generates a configuration file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  named ``Doxyfile.<target-name>`` in the current binary directory at 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  CMake configuration phase.  It provides sensible defaults, so most projects 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  only need to specify input files or directories.  Additional behavior and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  configuration can be customized using variables described in the following 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sections. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. rubric:: The arguments are: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``<target-name>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The name of the target to be created for generating documentation with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Doxygen. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``<files-or-dirs>...`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    One or more paths (files or directories) that serve as input sources for 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    documentation. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    These are passed to the ``INPUT`` Doxygen configuration tag in the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    generated ``Doxyfile.<target-name>``.  Files listed here are also added 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    as ``SOURCES`` argument of the underlying :command:`add_custom_target` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    command so they appear in IDE project's source list. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    When using the ``USE_STAMP_FILE`` option, only files (not directories, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    symlinks, or wildcards) are allowed, and each must exist when this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    command is called. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``ALL`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. versionadded:: 3.12 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Adds the created documentation target to the default build target so 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    that it runs automatically as part of the build phase. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``USE_STAMP_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. versionadded:: 3.16 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Enables use of a stamp file to avoid regenerating documentation unless 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    source files have changed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Stamp file named ``<target-name>.stamp`` is created in the current binary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    directory by an underlying custom command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    With this option present, all entries in ``<files-or-dirs>`` must be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    existing files (i.e. no directories, symlinks or wildcards) when this 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    command is called.  An error is raised if any listed path is invalid. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Without this option, CMake will re-run Doxygen every time the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ``<target-name>`` target is built, regardless of whether any input source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    file listed in ``<files-or-dirs>`` has changed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``WORKING_DIRECTORY <dir>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    By default, the Doxygen working directory is the current source directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (:variable:`CMAKE_CURRENT_SOURCE_DIR`).  This aligns with using relative 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    input paths. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Use this option, to change and override the directory where Doxygen is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    being run.  The absolute path ``<dir>`` will then be used as the base 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    point for relative paths. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Note also that Doxygen's default behavior is to strip the working 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    directory from relative paths in the generated documentation.  See the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ``STRIP_FROM_PATH`` config tag in the `Doxygen manual 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <https://www.doxygen.nl/manual/config.html>`_ for more details. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``COMMENT <comment>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    If provided, the ``<comment>`` string will be passed as the ``COMMENT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    argument to the underlying :command:`add_custom_target` command used to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    create the custom target internally.  This appears in the build system 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    output, when the target is built. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``CONFIG_FILE <file>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. versionadded:: 3.27 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    If specified, the given file provided with full-path will be used as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Doxygen configuration file instead of the default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ``Doxyfile.<target-name>``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. rubric:: Variables for customizing Doxygen configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  The ``doxygen_add_docs()`` command generates a Doxygen configuration file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  containing configuration tags.  For example: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. code-block:: text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :caption: ``Doxygen.<target-name>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    DOXYFILE_ENCODING      = UTF-8 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PROJECT_NAME           = DoxygenExample 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PROJECT_NUMBER         = 1.2.3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PROJECT_BRIEF          = "Example project using Doxygen" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    PROJECT_LOGO           = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    OUTPUT_DIRECTORY       = /home/user/doxygen-example/build 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GENERATE_HTML          = YES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    GENERATE_MAN           = NO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # ... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  In CMake, these tags can be modified by setting input variables in form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  of ``DOXYGEN_<tag>``, where ``<tag>`` is one of the configuration tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  listed in the `Doxygen manual 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <https://www.doxygen.nl/manual/config.html>`_. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  For example, to modify the ``GENERATE_HTML`` and ``GENERATE_MAN`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  configuration tags, the following variables can be set before calling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``doxygen_add_docs()``: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :caption: ``CMakeLists.txt`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    find_package(Doxygen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(Doxygen_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set(DOXYGEN_GENERATE_HTML NO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set(DOXYGEN_GENERATE_MAN YES) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      doxygen_add_docs(project_docs ${PROJECT_SOURCE_DIR}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. rubric:: Default configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  By default, ``doxygen_add_docs()`` overrides several of Doxygen's settings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  to better suit typical CMake projects.  Each of the following variables is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  explicitly set unless already defined prior to calling 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``doxygen_add_docs()``, with a few exceptions noted below: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_HAVE_DOT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Set to ``YES`` if the ``dot`` component was requested and found, ``NO`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    otherwise.  Any existing value of ``DOXYGEN_HAVE_DOT`` is ignored. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_DOT_MULTI_TARGETS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Set to ``YES`` by this module (note that this requires a ``dot`` version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    newer than 1.8.10). This option is only meaningful if ``DOXYGEN_HAVE_DOT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    newer than 1.8.10).  This option is only meaningful if ``DOXYGEN_HAVE_DOT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     is also set to ``YES``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_GENERATE_LATEX 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_GENERATE_LATEX`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Set to ``NO`` by this module. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_WARN_FORMAT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_WARN_FORMAT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     For Visual Studio based generators, this is set to the form recognized by 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     the Visual Studio IDE: ``$file($line) : $text``. For all other generators, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Doxygen's default value is not overridden. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_PROJECT_NAME 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_PROJECT_NAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Populated with the name of the current project (i.e. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :variable:`PROJECT_NAME`). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_PROJECT_NUMBER 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_PROJECT_NUMBER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Populated with the version of the current project (i.e. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :variable:`PROJECT_VERSION`). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_PROJECT_BRIEF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_PROJECT_BRIEF`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Populated with the description of the current project (i.e. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :variable:`PROJECT_DESCRIPTION`). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_INPUT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Projects should not set this variable. It will be populated with the set of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    files and directories passed to ``doxygen_add_docs()``, thereby providing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    consistent behavior with the other built-in commands like 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    :command:`add_executable`, :command:`add_library` and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    :command:`add_custom_target`. If a variable named ``DOXYGEN_INPUT`` is set 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    by the project, it will be ignored and a warning will be issued. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_RECURSIVE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_INPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    This variable is automatically populated with the list of files and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    directories passed to ``doxygen_add_docs()``.  For consistent behavior 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    with other built-in commands like :command:`add_executable`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :command:`add_library`, and :command:`add_custom_target`, projects should 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    not set this variable manually.  If a variable named ``DOXYGEN_INPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    is set by the project, it will be ignored and a warning will be issued. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_RECURSIVE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Set to ``YES`` by this module. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_EXCLUDE_PATTERNS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If the set of inputs includes directories, this variable will specify 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    patterns used to exclude files from them. The following patterns are added 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    by ``doxygen_add_docs()`` to ensure CMake-specific files and directories 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    are not included in the input. If the project sets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ``DOXYGEN_EXCLUDE_PATTERNS``, those contents are merged with these 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_EXCLUDE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    If the ``<files-or-dirs>`` argument of ``doxygen_add_docs()`` contains 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    directories, this variable will specify patterns used to exclude files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    from them.  The following patterns are added by default to ensure 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    CMake-specific files and directories are not included in the input.  If 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    the project sets this variable, those contents are merged with these 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     additional patterns rather than replacing them: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     :: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -200,205 +303,383 @@ Functions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       CMakeLists.txt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       CMakeCache.txt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. variable:: DOXYGEN_OUTPUT_DIRECTORY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_OUTPUT_DIRECTORY`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Set to :variable:`CMAKE_CURRENT_BINARY_DIR` by this module.  If the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    project provides its own value for this and it is a relative path, it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    will be interpreted relative to the current binary directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (:variable:`CMAKE_CURRENT_BINARY_DIR`).  This is necessary because 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Doxygen will normally be run from a directory within the source tree so 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    that relative source paths work as expected.  If this directory does not 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    exist, it will be recursively created prior to executing Doxygen. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. rubric:: Lists 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  A number of Doxygen config tags accept lists of values, and Doxygen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  requires them to be separated by whitespace, while in CMake a list is a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  string with items separated by :ref:`semicolons <CMake Language Lists>`. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  The ``doxygen_add_docs()`` specifically checks for the following Doxygen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  config tags and converts their associated CMake ``DOXYGEN_<tag>`` variable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  values into the Doxygen-formatted lists if set: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. hlist:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``ABBREVIATE_BRIEF`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``ALIASES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``CITE_BIB_FILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DIAFILE_DIRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DOTFILE_DIRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DOT_FONTPATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``ENABLED_SECTIONS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXAMPLE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXAMPLE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXCLUDE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXCLUDE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXCLUDE_SYMBOLS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXPAND_AS_DEFINED`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXTENSION_MAPPING`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXTRA_PACKAGES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXTRA_SEARCH_MAPPINGS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``FILE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``FILTER_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``FILTER_SOURCE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``HTML_EXTRA_FILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``HTML_EXTRA_STYLESHEET`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``IGNORE_PREFIX`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``IMAGE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``INCLUDE_FILE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``INCLUDE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``INPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``LATEX_EXTRA_FILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``LATEX_EXTRA_STYLESHEET`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``MATHJAX_EXTENSIONS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``MSCFILE_DIRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``PLANTUML_INCLUDE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``PREDEFINED`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``QHP_CUST_FILTER_ATTRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``QHP_SECT_FILTER_ATTRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``STRIP_FROM_INC_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``STRIP_FROM_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``TAGFILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``TCL_SUBST`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  For example, to customize the Doxygen file patterns, a usual 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :ref:`semicolon-separated list <CMake Language Lists>` can be set in CMake: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Set to :variable:`CMAKE_CURRENT_BINARY_DIR` by this module. Note that if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    the project provides its own value for this and it is a relative path, it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    will be converted to an absolute path relative to the current binary 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    directory. This is necessary because doxygen will normally be run from a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    directory within the source tree so that relative source paths work as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    expected. If this directory does not exist, it will be recursively created 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    prior to executing the doxygen commands. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :caption: ``CMakeLists.txt`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-To change any of these defaults or override any other Doxygen config option, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-set relevant variables before calling ``doxygen_add_docs()``. For example: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    find_package(Doxygen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  .. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(Doxygen_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      set(DOXYGEN_FILE_PATTERNS *.c *.cxx *.h *.hxx) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      doxygen_add_docs(example_docs ${CMAKE_CURRENT_SOURCE_DIR} ALL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    set(DOXYGEN_GENERATE_HTML NO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    set(DOXYGEN_GENERATE_MAN YES) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Which will produce a Doxygen list of patterns separated by spaces in the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  generated configuration file: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. code-block:: text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    :caption: ``Doxyfile.<target-name>`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # ... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    FILE_PATTERNS          = *.c *.cxx *.h *.hxx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. rubric:: Automatic quoting 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  If a Doxygen single-value tag contains spaces, their values must be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  surrounded by double quotes (``"..."``).  ``doxygen_add_docs()`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  automatically quotes values of the following Doxygen tags when generating 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the ``Doxyfile``, if they contain at least one space: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. hlist:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``CHM_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DIA_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DOCBOOK_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DOCSET_FEEDNAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DOCSET_PUBLISHER_NAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DOT_FONTNAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``DOT_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``EXTERNAL_SEARCH_ID`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``FILE_VERSION_FILTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``GENERATE_TAGFILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``HHC_LOCATION`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``HTML_FOOTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``HTML_HEADER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``HTML_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``HTML_STYLESHEET`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``INPUT_FILTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``LATEX_FOOTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``LATEX_HEADER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``LATEX_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``LAYOUT_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``MAN_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``MAN_SUBDIR`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``MATHJAX_CODEFILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``MSCGEN_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``OUTPUT_DIRECTORY`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``PERL_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``PLANTUML_JAR_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``PROJECT_BRIEF`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``PROJECT_LOGO`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``PROJECT_NAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``QCH_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``QHG_LOCATION`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``QHP_CUST_FILTER_NAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``QHP_VIRTUAL_FOLDER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``RTF_EXTENSIONS_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``RTF_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``RTF_STYLESHEET_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``SEARCHDATA_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``USE_MDFILE_AS_MAINPAGE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``WARN_FORMAT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``WARN_LOGFILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    - ``XML_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``DOXYGEN_VERBATIM_VARS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. versionadded:: 3.11 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    A CMake input variable used by ``doxygen_add_docs()`` to specify a list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    of Doxygen input variables (including their leading ``DOXYGEN_`` prefix) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    whose values should be passed to the generated ``Doxyfile`` configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    without automatic quoting. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    When using this variable, the project is then responsible for ensuring 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    that those variables' values make sense when placed directly in the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    generated ``Doxyfile`` configuration.  For list variables, items are 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    still separated by spaces in the output, but no quoting is applied to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    individual items. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    For certain Doxygen tags, such as ``ALIASES``, automatic quoting done by 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ``doxygen_add_docs()`` may interfere with correct syntax (e.g., embedded 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    quotes). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    For example, the following will quote ``DOXYGEN_PROJECT_BRIEF``, but skip 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    each item in the ``DOXYGEN_ALIASES`` list (:ref:`bracket syntax 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <Bracket Argument>` is used to make working with embedded quotes easier): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :caption: ``CMakeLists.txt`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      find_package(Doxygen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if(Doxygen_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        set(DOXYGEN_PROJECT_BRIEF "String with spaces") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        set( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          DOXYGEN_ALIASES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          [[somealias="@some_command param"]] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          "anotherAlias=@foobar" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    doxygen_add_docs( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        doxygen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ${PROJECT_SOURCE_DIR} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        COMMENT "Generate man pages" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        add_doxygen_docs(project_docs ${PROJECT_SOURCE_DIR}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The resultant ``Doxyfile`` configuration will contain the following lines: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    .. code-block:: text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :caption: ``Doxyfile.project_docs`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      PROJECT_BRIEF = "String with spaces" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ALIASES       = somealias="@some_command param" anotherAlias=@foobar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Deprecated Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+^^^^^^^^^^^^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+For compatibility with previous versions of CMake, the following variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+are also defined but they are deprecated and should no longer be used: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``DOXYGEN_EXECUTABLE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. deprecated:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Use ``Doxygen::doxygen`` imported target instead of referring to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ``doxygen`` executable directly. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-A number of Doxygen config options accept lists of values, but Doxygen requires 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-them to be separated by whitespace. CMake variables hold lists as a string with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-items separated by semi-colons, so a conversion needs to be performed. The 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-``doxygen_add_docs()`` command specifically checks the following Doxygen config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-options and will convert their associated CMake variable's contents into the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-required form if set. CMake variables are named ``DOXYGEN_<name>`` for the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Doxygen settings specified here. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. hlist:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``ABBREVIATE_BRIEF`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``ALIASES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``CITE_BIB_FILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DIAFILE_DIRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DOTFILE_DIRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DOT_FONTPATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``ENABLED_SECTIONS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXAMPLE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXAMPLE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXCLUDE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXCLUDE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXCLUDE_SYMBOLS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXPAND_AS_DEFINED`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXTENSION_MAPPING`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXTRA_PACKAGES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXTRA_SEARCH_MAPPINGS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``FILE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``FILTER_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``FILTER_SOURCE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``HTML_EXTRA_FILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``HTML_EXTRA_STYLESHEET`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``IGNORE_PREFIX`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``IMAGE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``INCLUDE_FILE_PATTERNS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``INCLUDE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``INPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``LATEX_EXTRA_FILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``LATEX_EXTRA_STYLESHEET`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``MATHJAX_EXTENSIONS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``MSCFILE_DIRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``PLANTUML_INCLUDE_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``PREDEFINED`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``QHP_CUST_FILTER_ATTRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``QHP_SECT_FILTER_ATTRS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``STRIP_FROM_INC_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``STRIP_FROM_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``TAGFILES`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``TCL_SUBST`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-The following single value Doxygen options will be quoted automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if they contain at least one space: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. hlist:: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``CHM_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DIA_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DOCBOOK_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DOCSET_FEEDNAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DOCSET_PUBLISHER_NAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DOT_FONTNAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``DOT_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``EXTERNAL_SEARCH_ID`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``FILE_VERSION_FILTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``GENERATE_TAGFILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``HHC_LOCATION`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``HTML_FOOTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``HTML_HEADER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``HTML_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``HTML_STYLESHEET`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``INPUT_FILTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``LATEX_FOOTER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``LATEX_HEADER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``LATEX_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``LAYOUT_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``MAN_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``MAN_SUBDIR`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``MATHJAX_CODEFILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``MSCGEN_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``OUTPUT_DIRECTORY`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``PERL_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``PLANTUML_JAR_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``PROJECT_BRIEF`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``PROJECT_LOGO`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``PROJECT_NAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``QCH_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``QHG_LOCATION`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``QHP_CUST_FILTER_NAME`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``QHP_VIRTUAL_FOLDER`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``RTF_EXTENSIONS_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``RTF_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``RTF_STYLESHEET_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``SEARCHDATA_FILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``USE_MDFILE_AS_MAINPAGE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``WARN_FORMAT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``WARN_LOGFILE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  - ``XML_OUTPUT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. versionadded:: 3.11 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  There are situations where it may be undesirable for a particular config option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  to be automatically quoted by ``doxygen_add_docs()``, such as ``ALIASES`` which 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  may need to include its own embedded quoting.  The ``DOXYGEN_VERBATIM_VARS`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  variable can be used to specify a list of Doxygen variables (including the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  leading ``DOXYGEN_`` prefix) which should not be quoted.  The project is then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  responsible for ensuring that those variables' values make sense when placed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  directly in the Doxygen input file.  In the case of list variables, list items 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  are still separated by spaces, it is only the automatic quoting that is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  skipped.  For example, the following allows ``doxygen_add_docs()`` to apply 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  quoting to ``DOXYGEN_PROJECT_BRIEF``, but not each item in the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ``DOXYGEN_ALIASES`` list (:ref:`bracket syntax <Bracket Argument>` can also 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  be used to make working with embedded quotes easier): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Cache variable containing the path to the ``doxygen`` command. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``DOXYGEN_DOT_FOUND`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. deprecated:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Boolean result variable indicating whether ``dot`` executable is found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``DOXYGEN_DOT_EXECUTABLE`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. deprecated:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Use ``Doxygen::dot`` imported target instead of referring to the ``dot`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    executable directly. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Cache variable containing the path to the ``dot`` command-line executable. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``DOXYGEN_DOT_PATH`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. deprecated:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Result variable containing the path to the directory where the ``dot`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  executable is located as reported in ``DOXYGEN_DOT_EXECUTABLE``.  The path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  may have forward slashes even on Windows and is not suitable for direct 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  substitution into a ``Doxyfile.in`` template.  If this value is needed, get 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the :prop_tgt:`IMPORTED_LOCATION` property of the ``Doxygen::dot`` target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  and use :command:`get_filename_component` to extract the directory part of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  that path.  Consider also using :command:`file(TO_NATIVE_PATH)` to prepare 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  the path for a Doxygen configuration file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+``DOXYGEN_SKIP_DOT`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  .. deprecated:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  This hint variable has no effect when specifying components in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ``find_package(Doxygen COMPONENTS ...)``.  In backward-compatibility mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (i.e. without specifying components) it prevents this find module from 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  searching for Graphviz's ``dot`` utility. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Examples 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Examples: Finding Doxygen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+""""""""""""""""""""""""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Finding Doxygen: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 .. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  set(DOXYGEN_PROJECT_BRIEF "String with spaces") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  set(DOXYGEN_ALIASES 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      [[somealias="@some_command param"]] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      "anotherAlias=@foobar" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-The resultant ``Doxyfile`` will contain the following lines: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Or, finding Doxygen and specifying a minimum required version: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. code-block:: text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  PROJECT_BRIEF = "String with spaces" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ALIASES       = somealias="@some_command param" anotherAlias=@foobar 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen 1.9) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Or, finding Doxygen and making it required (if not found, processing stops 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+with an error message): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Deprecated Result Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. deprecated:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen REQUIRED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-For compatibility with previous versions of CMake, the following variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-are also defined but they are deprecated and should no longer be used: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Or, finding Doxygen as required and specifying ``dot`` tool as required 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+component and ``mscgen`` and ``dia`` tools as optional components: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen REQUIRED COMPONENTS dot OPTIONAL_COMPONENTS mscgen dia) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Example: Using Doxygen in CMake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+""""""""""""""""""""""""""""""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+The following example demonstrates how to find Doxygen and create documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from source files at build phase.  Once project is built, generated 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+documentation files will be located in the ``html`` directory inside the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+project binary directory: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. variable:: DOXYGEN_EXECUTABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :caption: ``CMakeLists.txt`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  The path to the ``doxygen`` command. If projects need to refer to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ``doxygen`` executable directly, they should use the ``Doxygen::doxygen`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  import target instead. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  cmake_minimum_required(VERSION 3.24) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  project( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    DoxygenExample 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    DESCRIPTION "Example project using Doxygen" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    VERSION 1.2.3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. variable:: DOXYGEN_DOT_FOUND 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  add_executable(example example.c) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(Doxygen_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    doxygen_add_docs(project_docs example.c ALL USE_STAMP_FILE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :caption: ``example.c`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @file example.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @brief A simple example to demonstrate Doxygen. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  #include <stdio.h> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @brief Calculates the sum of two integers. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @param a First integer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @param b Second integer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @return Sum of a and b. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @par Example 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * int result = sum(3, 4); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * printf("%d\n", result); // Outputs: 7 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @endcode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  int sum(int a, int b) { return a + b; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @brief Main function. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   * @return 0 on success. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  int main(void) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    int result = sum(5, 7); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    printf("Result: %d\n", result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Example: Configuring Doxygen With Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+""""""""""""""""""""""""""""""""""""""""""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+In the following example, Doxygen configuration is customized using CMake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+variables.  The configuration sets file patterns when using a directory as 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+the source input (:variable:`CMAKE_CURRENT_SOURCE_DIR`), enables a theme 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+toggle for switching between light and dark modes, suppresses Doxygen's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+standard output during the build phase, specifies a Markdown file as the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+main page, and disables warnings about undocumented code: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  True if the ``dot`` executable was found. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. variable:: DOXYGEN_DOT_EXECUTABLE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  The path to the ``dot`` command. If projects need to refer to the ``dot`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  executable directly, they should use the ``Doxygen::dot`` import target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  instead. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(Doxygen_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(DOXYGEN_FILE_PATTERNS *.c *.cxx *.md) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(DOXYGEN_HTML_COLORSTYLE "TOGGLE") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(DOXYGEN_QUIET YES) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${CMAKE_CURRENT_SOURCE_DIR}/README.md") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    set(DOXYGEN_WARN_IF_UNDOCUMENTED NO) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. variable:: DOXYGEN_DOT_PATH 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    doxygen_add_docs(example_docs ${CMAKE_CURRENT_SOURCE_DIR} ALL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  The path to the directory containing the ``dot`` executable as reported in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ``DOXYGEN_DOT_EXECUTABLE``. The path may have forward slashes even on Windows 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  and is not suitable for direct substitution into a ``Doxyfile.in`` template. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  If you need this value, get the :prop_tgt:`IMPORTED_LOCATION` property of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ``Doxygen::dot`` target and use :command:`get_filename_component` to extract 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  the directory part of that path. You may also want to consider using 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :command:`file(TO_NATIVE_PATH)` to prepare the path for a Doxygen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  configuration file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Example: Custom Configuration File 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+"""""""""""""""""""""""""""""""""" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+In the following example, a custom ``Doxyfile`` configuration file is created 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+in the current binary directory (:variable:`CMAKE_CURRENT_BINARY_DIR`) prior 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+to calling the ``doxygen_add_doxs()``.  This allows project-specific 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+configuration tags to be customized as needed: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Deprecated Hint Variables 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-^^^^^^^^^^^^^^^^^^^^^^^^^ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: cmake 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :caption: ``CMakeLists.txt`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. deprecated:: 3.9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  find_package(Doxygen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.. variable:: DOXYGEN_SKIP_DOT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if(Doxygen_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    configure_file(Doxyfile.in Doxyfile) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  This variable has no effect for the component form of ``find_package``. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  In backward compatibility mode (i.e. without components list) it prevents 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  the finder module from searching for Graphviz's ``dot`` utility. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    doxygen_add_doxs( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      example_docs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      foo.c bar.c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ALL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      USE_STAMP_FILE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      COMMENT "Generating project documentation with custom Doxyfile" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      CONFIG_FILE ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.. code-block:: text 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :caption: ``Doxyfile.in`` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  PROJECT_NAME           = "Customized project name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  OUTPUT_DIRECTORY       = "@CMAKE_CURRENT_BINARY_DIR@" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  # ... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #]=======================================================================] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # For backwards compatibility support 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -694,7 +975,7 @@ endif() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Maintain the _FOUND variables as "YES" or "NO" for backwards 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # compatibility. This allows people to substitute them directly into 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Doxyfile with configure_file(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-if(DOXYGEN_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+if(Doxygen_FOUND) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     set(DOXYGEN_FOUND "YES") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 else() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     set(DOXYGEN_FOUND "NO") 
			 |