Spec-Zone.ru › CMake 3.14

FindDoxygen

Doxygen — это инструмент генерации документации (см. http://www.doxygen.org). Этот модуль ищет Doxygen и некоторые поддерживаемые им дополнительные инструменты. Эти инструменты включены как компоненты в команде find_package():

dot

Graphviz dot утилита, используемая для рендеринга различных графиков.

mscgen

Message Chart Generator утилита, используемая командами Doxygen’s \msc и \mscfile.

dia

Dia редактор диаграмм, используемый командой Doxygen’s \diafile.

Примеры:

# Require dot, treat the other components as optional
find_package(Doxygen
             REQUIRED dot
             OPTIONAL_COMPONENTS mscgen dia)

Данный модуль определяет следующие переменные:

DOXYGEN_FOUND

Истина, если исполняемый файл doxygen был найден.

DOXYGEN_VERSION

Версия, сообщённая doxygen --version.

Модуль определяет IMPORTED целевые объекты для Doxygen и каждого найденного компонента. Они могут использоваться в пользовательских командах и т. п., и предпочтительнее устаревших (и теперь устаревших) переменных, таких как DOXYGEN_EXECUTABLE. Следующие целевые объекты импорта определяются, если соответствующий исполняемый файл был найден (целевые объекты импорта компонента будут определены только в том случае, если компонент был запрошен):

Doxygen::doxygen
Doxygen::dot
Doxygen::mscgen
Doxygen::dia

Функции

doxygen_add_docs

Эта функция предназначена для удобства добавления целевого объекта для генерации документации с помощью Doxygen. Она нацелена на предоставление разумных значений по умолчанию, чтобы проекты могли в основном просто указать входные файлы и каталоги, и этого будет достаточно для получения разумных результатов. Функция поддерживает возможность настройки конфигурации Doxygen, используемой для построения документации.

doxygen_add_docs(targetName
    [filesOrDirs...]
    [ALL]
    [WORKING_DIRECTORY dir]
    [COMMENT comment])

Функция создаёт Doxyfile и определяет пользовательский целевой объект, который запускает Doxygen для этого сгенерированного файла. Перечисленные файлы и каталоги используются в качестве INPUT сгенерированного Doxyfile и они могут содержать подстановочные знаки. Любые файлы, которые явно перечислены, также будут добавлены как SOURCES пользовательского целевого объекта, так что они будут отображаться в списке исходного кода проекта IDE.

Для того, чтобы относительные пути к входным файлам работали как ожидается, по умолчанию рабочим каталогом команды Doxygen будет текущий каталог исходного кода (т. е. CMAKE_CURRENT_SOURCE_DIR). Это можно переопределить с помощью параметра WORKING_DIRECTORY для изменения каталога, используемого в качестве относительной базовой точки. Обратите также внимание, что по умолчанию Doxygen удаляет рабочий каталог из относительных путей в сгенерированной документации (см. параметр конфигурации Doxygen STRIP_FROM_PATH Doxygen config option для получения подробных сведений).

Если предоставлено, опциональное значение comment будет передано в качестве COMMENT для команды add_custom_target(), используемой для создания пользовательского целевого объекта внутри.

Если ALL установлено, целевой объект будет добавлен в целевой объект по умолчанию.

Содержимое сгенерированного Doxyfile можно настроить, установив переменные CMake перед вызовом doxygen_add_docs(). Любая переменная с именем в формате DOXYGEN_<tag> будет иметь своё значение, подставленное для соответствующего параметра конфигурации <tag> в Doxyfile. См. документацию Doxygen для получения полного списка поддерживаемых параметров конфигурации.

Некоторые значения Doxygen по умолчанию переопределяются для обеспечения более подходящего поведения в проекте CMake. Каждый из следующих пунктов будет явно установлен, если переменная ещё не имеет значения перед вызовом doxygen_add_docs() (с некоторыми исключениями):

DOXYGEN_HAVE_DOT

Устанавливается в YES если компонент dot был запрошен и найден, NO в противном случае. Любое существующее значение DOXYGEN_HAVE_DOT игнорируется.

DOXYGEN_DOT_MULTI_TARGETS

Устанавливается в YES данным модулем (обратите внимание, что это требует версию dot новее 1.8.10). Этот параметр имеет смысл только если DOXYGEN_HAVE_DOT также установлено в YES.

DOXYGEN_GENERATE_LATEX

Устанавливается в NO данным модулем.

DOXYGEN_WARN_FORMAT

Для генераторов, основанных на Visual Studio, это устанавливается в формат, распознаваемый средой Visual Studio: $file($line) : $text. Для всех других генераторов значение по умолчанию Doxygen не переопределяется.

DOXYGEN_PROJECT_NAME

Заполняется именем текущего проекта (т. е. PROJECT_NAME).

DOXYGEN_PROJECT_NUMBER

Заполняется версией текущего проекта (т. е. PROJECT_VERSION).

DOXYGEN_PROJECT_BRIEF

Заполняется описанием текущего проекта (т. е. PROJECT_DESCRIPTION).

DOXYGEN_INPUT

Проекты не должны устанавливать эту переменную. Она будет заполнена набором файлов и каталогов, переданных doxygen_add_docs(), обеспечивая согласованное поведение с другими встроенными командами, такими как add_executable(), add_library() и add_custom_target(). Если проект устанавливает переменную с именем DOXYGEN_INPUT, её содержимое будет проигнорировано, и будет выведено предупреждение.

DOXYGEN_RECURSIVE

Устанавливается в YES данным модулем.

DOXYGEN_EXCLUDE_PATTERNS

Если набор входных данных включает каталоги, эта переменная укажет шаблоны, используемые для исключения файлов из них. Следующие шаблоны добавляются doxygen_add_docs() для обеспечения того, чтобы файлы и каталоги, специфичные для CMake, не включались в входные данные. Если проект устанавливает DOXYGEN_EXCLUDE_PATTERNS, это содержимое объединяется с этими дополнительными шаблонами, а не заменяет их:

*/.git/*
*/.svn/*
*/.hg/*
*/CMakeFiles/*
*/_CPack_Packages/*
DartConfiguration.tcl
CMakeLists.txt
CMakeCache.txt
DOXYGEN_OUTPUT_DIRECTORY

Устанавливается в CMAKE_CURRENT_BINARY_DIR данным модулем. Обратите внимание, что если проект предоставляет своё значение для этого и оно является относительным путём, оно будет преобразовано в абсолютный путь, относящийся к текущему каталогу двоичных файлов. Это необходимо, так как doxygen обычно запускается из каталога внутри дерева исходного кода, чтобы относительные пути к исходному коду работали как ожидается. Если этот каталог не существует, он будет рекурсивно создан до выполнения команд doxygen.

Для изменения любого из этих значений по умолчанию или переопределения любого другого параметра конфигурации Doxygen, установите соответствующие переменные перед вызовом doxygen_add_docs(). Например:

set(DOXYGEN_GENERATE_HTML NO)
set(DOXYGEN_GENERATE_MAN YES)

doxygen_add_docs(
    doxygen
    ${PROJECT_SOURCE_DIR}
    COMMENT "Generate man pages"
)

Ряд параметров конфигурации Doxygen принимают списки значений, но Doxygen требует, чтобы они были разделены пробелами. Переменные CMake хранят списки в виде строки с элементами, разделёнными точками с запятой, поэтому требуется преобразование. Команда doxygen_add_docs() специально проверяет следующие параметры конфигурации Doxygen и преобразует содержимое связанной переменной CMake в требуемый формат, если она установлена.

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

Следующие параметры конфигурации Doxygen с одиночным значением будут автоматически заключены в кавычки, если они содержат по крайней мере один пробел:

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_add_docs(), например, ALIASES, который может потребовать включения своих встроенных кавычек. Переменная DOXYGEN_VERBATIM_VARS может использоваться для указания списка переменных Doxygen (включая префикс DOXYGEN_ ), которые не должны быть заключены в кавычки. Проект затем несёт ответственность за обеспечение того, чтобы значения этих переменных имели смысл при непосредственном размещении в входном файле Doxygen. В случае со списковыми переменными элементы списка всё ещё разделяются пробелами, но лишь автоматическое заключение в кавычки пропускается. Например, следующее позволяет doxygen_add_docs() применять кавычки к DOXYGEN_PROJECT_BRIEF, но не к каждому элементу в списке DOXYGEN_ALIASES (можно также использовать синтаксис в скобках bracket syntax, чтобы упростить работу со встроенными кавычками):

set(DOXYGEN_PROJECT_BRIEF "String with spaces")
set(DOXYGEN_ALIASES
    [[somealias="@some_command param"]]
    "anotherAlias=@foobar"
)
set(DOXYGEN_VERBATIM_VARS DOXYGEN_ALIASES)

Полученный Doxyfile будет содержать следующие строки:

PROJECT_BRIEF = "String with spaces"
ALIASES       = somealias="@some_command param" anotherAlias=@foobar

Устаревшие переменные результатов

Для совместимости с предыдущими версиями CMake, также определены следующие переменные, но они устарели и больше не должны использоваться:

DOXYGEN_EXECUTABLE

Путь к команде doxygen. Если проектам необходимо напрямую обратиться к исполняемому файлу doxygen, они должны использовать целевой импорт Doxygen::doxygen.

DOXYGEN_DOT_FOUND

Истинно, если исполняемый файл dot был найден.

DOXYGEN_DOT_EXECUTABLE

Путь к команде dot. Если проектам необходимо напрямую обратиться к исполняемому файлу dot, они должны использовать целевой импорт Doxygen::dot.

DOXYGEN_DOT_PATH

Путь к каталогу, содержащему исполняемый файл dot, как указано в DOXYGEN_DOT_EXECUTABLE. Путь может содержать косые черты даже в Windows и не подходит для прямой подстановки в шаблон Doxyfile.in. Если вам нужна эта величина, получите свойство IMPORTED_LOCATION целевого объекта Doxygen::dot и используйте get_filename_component() для извлечения части пути, указывающей на каталог. Также можно использовать file(TO_NATIVE_PATH) для подготовки пути к файлу конфигурации Doxygen.

Переменные устаревших подсказок

DOXYGEN_SKIP_DOT

Эта переменная не оказывает никакого влияния для компонентной формы find_package. В режиме обратной совместимости (т. е. без списка компонентов) она предотвращает поиск модулем поиска утилиты Graphviz dot.

© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.14/module/FindDoxygen.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API