mirror of
https://github.com/ROCm/composable_kernel.git
synced 2026-03-23 16:47:40 +00:00
336 lines
6.2 KiB
CMake
336 lines
6.2 KiB
CMake
# Copyright (c) Advanced Micro Devices, Inc., or its affiliates.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
include(CMakeParseArguments)
|
|
include(MainDoc)
|
|
|
|
find_program(DOXYGEN_EXECUTABLE NAMES doxygen
|
|
PATH_SUFFIXES bin
|
|
DOC "Doxygen documentation generator"
|
|
)
|
|
mark_as_advanced(DOXYGEN_EXECUTABLE)
|
|
|
|
find_path(DOT_EXECUTABLE NAMES dot
|
|
PATH_SUFFIXES bin
|
|
DOC "Graphviz"
|
|
)
|
|
mark_as_advanced(DOT_EXECUTABLE)
|
|
|
|
set(DOXYGEN_ARGS
|
|
ABBREVIATE_BRIEF
|
|
ALIASES
|
|
ALLEXTERNALS
|
|
ALLOW_UNICODE_NAMES
|
|
ALPHABETICAL_INDEX
|
|
ALWAYS_DETAILED_SEC
|
|
AUTOLINK_SUPPORT
|
|
BINARY_TOC
|
|
BRIEF_MEMBER_DESC
|
|
BUILTIN_STL_SUPPORT
|
|
CALLER_GRAPH
|
|
CALL_GRAPH
|
|
CASE_SENSE_NAMES
|
|
CHM_FILE
|
|
CHM_INDEX_ENCODING
|
|
CITE_BIB_FILES
|
|
CLANG_ASSISTED_PARSING
|
|
CLANG_OPTIONS
|
|
CLASS_DIAGRAMS
|
|
CLASS_GRAPH
|
|
COLLABORATION_GRAPH
|
|
COLS_IN_ALPHA_INDEX
|
|
COMPACT_LATEX
|
|
COMPACT_RTF
|
|
CPP_CLI_SUPPORT
|
|
CREATE_SUBDIRS
|
|
DIAFILE_DIRS
|
|
DIA_PATH
|
|
DIRECTORY_GRAPH
|
|
DISABLE_INDEX
|
|
DISTRIBUTE_GROUP_DOC
|
|
DOCBOOK_OUTPUT
|
|
DOCBOOK_PROGRAMLISTING
|
|
DOCSET_BUNDLE_ID
|
|
DOCSET_FEEDNAME
|
|
DOCSET_PUBLISHER_ID
|
|
DOCSET_PUBLISHER_NAME
|
|
DOTFILE_DIRS
|
|
DOT_CLEANUP
|
|
DOT_FONTNAME
|
|
DOT_FONTPATH
|
|
DOT_FONTSIZE
|
|
DOT_GRAPH_MAX_NODES
|
|
DOT_IMAGE_FORMAT
|
|
DOT_MULTI_TARGETS
|
|
DOT_NUM_THREADS
|
|
# DOT_PATH
|
|
DOT_TRANSPARENT
|
|
DOXYFILE_ENCODING
|
|
ECLIPSE_DOC_ID
|
|
ENABLED_SECTIONS
|
|
ENABLE_PREPROCESSING
|
|
ENUM_VALUES_PER_LINE
|
|
EXAMPLE_PATH
|
|
EXAMPLE_PATTERNS
|
|
EXAMPLE_RECURSIVE
|
|
EXCLUDE
|
|
EXCLUDE_PATTERNS
|
|
EXCLUDE_SYMBOLS
|
|
EXCLUDE_SYMLINKS
|
|
EXPAND_AS_DEFINED
|
|
EXPAND_ONLY_PREDEF
|
|
EXTENSION_MAPPING
|
|
EXTERNAL_GROUPS
|
|
EXTERNAL_PAGES
|
|
EXTERNAL_SEARCH
|
|
EXTERNAL_SEARCH_ID
|
|
EXTRACT_ALL
|
|
EXTRACT_ANON_NSPACES
|
|
EXTRACT_LOCAL_CLASSES
|
|
EXTRACT_LOCAL_METHODS
|
|
EXTRACT_PACKAGE
|
|
EXTRACT_PRIVATE
|
|
EXTRACT_STATIC
|
|
EXTRA_PACKAGES
|
|
EXTRA_SEARCH_MAPPINGS
|
|
EXT_LINKS_IN_WINDOW
|
|
FILE_PATTERNS
|
|
FILE_VERSION_FILTER
|
|
FILTER_PATTERNS
|
|
FILTER_SOURCE_FILES
|
|
FILTER_SOURCE_PATTERNS
|
|
FORCE_LOCAL_INCLUDES
|
|
FORMULA_FONTSIZE
|
|
FORMULA_TRANSPARENT
|
|
FULL_PATH_NAMES
|
|
GENERATE_AUTOGEN_DEF
|
|
GENERATE_BUGLIST
|
|
GENERATE_CHI
|
|
GENERATE_DEPRECATEDLIST
|
|
GENERATE_DOCBOOK
|
|
GENERATE_DOCSET
|
|
GENERATE_ECLIPSEHELP
|
|
GENERATE_HTML
|
|
GENERATE_HTMLHELP
|
|
GENERATE_LATEX
|
|
GENERATE_LEGEND
|
|
GENERATE_MAN
|
|
GENERATE_PERLMOD
|
|
GENERATE_QHP
|
|
GENERATE_RTF
|
|
GENERATE_TAGFILE
|
|
GENERATE_TESTLIST
|
|
GENERATE_TODOLIST
|
|
GENERATE_TREEVIEW
|
|
GENERATE_XML
|
|
GRAPHICAL_HIERARCHY
|
|
GROUP_GRAPHS
|
|
GROUP_NESTED_COMPOUNDS
|
|
# HAVE_DOT
|
|
HHC_LOCATION
|
|
HIDE_COMPOUND_REFERENCE
|
|
HIDE_FRIEND_COMPOUNDS
|
|
HIDE_IN_BODY_DOCS
|
|
HIDE_SCOPE_NAMES
|
|
HIDE_UNDOC_CLASSES
|
|
HIDE_UNDOC_MEMBERS
|
|
HIDE_UNDOC_RELATIONS
|
|
HTML_COLORSTYLE_GAMMA
|
|
HTML_COLORSTYLE_HUE
|
|
HTML_COLORSTYLE_SAT
|
|
HTML_DYNAMIC_SECTIONS
|
|
HTML_EXTRA_FILES
|
|
HTML_EXTRA_STYLESHEET
|
|
HTML_FILE_EXTENSION
|
|
HTML_FOOTER
|
|
HTML_HEADER
|
|
HTML_INDEX_NUM_ENTRIES
|
|
HTML_OUTPUT
|
|
HTML_STYLESHEET
|
|
HTML_TIMESTAMP
|
|
IDL_PROPERTY_SUPPORT
|
|
IGNORE_PREFIX
|
|
IMAGE_PATH
|
|
INCLUDED_BY_GRAPH
|
|
INCLUDE_FILE_PATTERNS
|
|
INCLUDE_GRAPH
|
|
INCLUDE_PATH
|
|
INHERIT_DOCS
|
|
INLINE_GROUPED_CLASSES
|
|
INLINE_INFO
|
|
INLINE_INHERITED_MEMB
|
|
INLINE_SIMPLE_STRUCTS
|
|
INLINE_SOURCES
|
|
INPUT
|
|
INPUT_ENCODING
|
|
INPUT_FILTER
|
|
INTERACTIVE_SVG
|
|
INTERNAL_DOCS
|
|
JAVADOC_AUTOBRIEF
|
|
LATEX_BATCHMODE
|
|
LATEX_BIB_STYLE
|
|
LATEX_CMD_NAME
|
|
LATEX_EXTRA_FILES
|
|
LATEX_EXTRA_STYLESHEET
|
|
LATEX_FOOTER
|
|
LATEX_HEADER
|
|
LATEX_HIDE_INDICES
|
|
LATEX_OUTPUT
|
|
LATEX_SOURCE_CODE
|
|
LATEX_TIMESTAMP
|
|
LAYOUT_FILE
|
|
LOOKUP_CACHE_SIZE
|
|
MACRO_EXPANSION
|
|
MAKEINDEX_CMD_NAME
|
|
MAN_EXTENSION
|
|
MAN_LINKS
|
|
MAN_OUTPUT
|
|
MAN_SUBDIR
|
|
MARKDOWN_SUPPORT
|
|
MATHJAX_CODEFILE
|
|
MATHJAX_EXTENSIONS
|
|
MATHJAX_FORMAT
|
|
MATHJAX_RELPATH
|
|
MAX_DOT_GRAPH_DEPTH
|
|
MAX_INITIALIZER_LINES
|
|
MSCFILE_DIRS
|
|
MSCGEN_PATH
|
|
MULTILINE_CPP_IS_BRIEF
|
|
OPTIMIZE_FOR_FORTRAN
|
|
OPTIMIZE_OUTPUT_FOR_C
|
|
OPTIMIZE_OUTPUT_JAVA
|
|
OPTIMIZE_OUTPUT_VHDL
|
|
OUTPUT_DIRECTORY
|
|
OUTPUT_LANGUAGE
|
|
PAPER_TYPE
|
|
PDF_HYPERLINKS
|
|
PERLMOD_LATEX
|
|
PERLMOD_MAKEVAR_PREFIX
|
|
PERLMOD_PRETTY
|
|
PERL_PATH
|
|
PLANTUML_CFG_FILE
|
|
PLANTUML_INCLUDE_PATH
|
|
PLANTUML_JAR_PATH
|
|
PREDEFINED
|
|
PROJECT_BRIEF
|
|
PROJECT_LOGO
|
|
PROJECT_NAME
|
|
PROJECT_NUMBER
|
|
QCH_FILE
|
|
QHG_LOCATION
|
|
QHP_CUST_FILTER_ATTRS
|
|
QHP_CUST_FILTER_NAME
|
|
QHP_NAMESPACE
|
|
QHP_SECT_FILTER_ATTRS
|
|
QHP_VIRTUAL_FOLDER
|
|
QT_AUTOBRIEF
|
|
QUIET
|
|
RECURSIVE
|
|
REFERENCED_BY_RELATION
|
|
REFERENCES_LINK_SOURCE
|
|
REFERENCES_RELATION
|
|
REPEAT_BRIEF
|
|
RTF_EXTENSIONS_FILE
|
|
RTF_HYPERLINKS
|
|
RTF_OUTPUT
|
|
RTF_SOURCE_CODE
|
|
RTF_STYLESHEET_FILE
|
|
SEARCHDATA_FILE
|
|
SEARCHENGINE
|
|
SEARCHENGINE_URL
|
|
SEARCH_INCLUDES
|
|
SEPARATE_MEMBER_PAGES
|
|
SERVER_BASED_SEARCH
|
|
SHORT_NAMES
|
|
SHOW_FILES
|
|
SHOW_GROUPED_MEMB_INC
|
|
SHOW_INCLUDE_FILES
|
|
SHOW_NAMESPACES
|
|
SHOW_USED_FILES
|
|
SIP_SUPPORT
|
|
SKIP_FUNCTION_MACROS
|
|
SORT_BRIEF_DOCS
|
|
SORT_BY_SCOPE_NAME
|
|
SORT_GROUP_NAMES
|
|
SORT_MEMBERS_CTORS_1ST
|
|
SORT_MEMBER_DOCS
|
|
SOURCE_BROWSER
|
|
SOURCE_TOOLTIPS
|
|
STRICT_PROTO_MATCHING
|
|
STRIP_CODE_COMMENTS
|
|
STRIP_FROM_INC_PATH
|
|
STRIP_FROM_PATH
|
|
SUBGROUPING
|
|
TAB_SIZE
|
|
TAGFILES
|
|
TCL_SUBST
|
|
TEMPLATE_RELATIONS
|
|
TOC_EXPAND
|
|
TOC_INCLUDE_HEADINGS
|
|
TREEVIEW_WIDTH
|
|
TYPEDEF_HIDES_STRUCT
|
|
UML_LIMIT_NUM_FIELDS
|
|
UML_LOOK
|
|
USE_HTAGS
|
|
USE_MATHJAX
|
|
USE_MDFILE_AS_MAINPAGE
|
|
USE_PDFLATEX
|
|
VERBATIM_HEADERS
|
|
WARNINGS
|
|
WARN_AS_ERROR
|
|
WARN_FORMAT
|
|
WARN_IF_DOC_ERROR
|
|
WARN_IF_UNDOCUMENTED
|
|
WARN_LOGFILE
|
|
WARN_NO_PARAMDOC
|
|
XML_OUTPUT
|
|
XML_PROGRAMLISTING
|
|
)
|
|
|
|
set(WARN_AS_ERROR YES)
|
|
|
|
set(DOXYGEN_CONFIG_FILE "${CMAKE_CURRENT_BINARY_DIR}/doxygen/doxygen.conf" CACHE PATH "Path to generated doxygen configuration file")
|
|
|
|
function(add_doxygen_doc)
|
|
set(options)
|
|
set(oneValueArgs)
|
|
set(multiValueArgs DEPENDS ${DOXYGEN_ARGS})
|
|
|
|
cmake_parse_arguments(PARSE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
|
|
file(WRITE ${DOXYGEN_CONFIG_FILE} "# Auto-generated doxygen configuration file\n")
|
|
|
|
foreach(ARG ${DOXYGEN_ARGS})
|
|
if(PARSE_${ARG})
|
|
string(REPLACE ";" " " ARG_VALUE ${PARSE_${ARG}})
|
|
file(APPEND ${DOXYGEN_CONFIG_FILE} "\n${ARG} = ${ARG_VALUE}\n")
|
|
endif()
|
|
endforeach()
|
|
|
|
if(PARSE_OUTPUT_DIRECTORY)
|
|
if(NOT EXISTS ${PARSE_OUTPUT_DIRECTORY})
|
|
file(MAKE_DIRECTORY ${PARSE_OUTPUT_DIRECTORY})
|
|
endif()
|
|
endif()
|
|
|
|
if(DOT_EXECUTABLE)
|
|
file(APPEND ${DOXYGEN_CONFIG_FILE} "\nDOT_PATH = \"${DOT_EXECUTABLE}\"\n")
|
|
file(APPEND ${DOXYGEN_CONFIG_FILE} "\nHAVE_DOT = YES\n")
|
|
else()
|
|
file(APPEND ${DOXYGEN_CONFIG_FILE} "\nHAVE_DOT = NO\n")
|
|
endif()
|
|
|
|
add_custom_target(doxygen
|
|
${DOXYGEN_EXECUTABLE} ${DOXYGEN_CONFIG_FILE}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
COMMENT "Building documentation with doxygen"
|
|
)
|
|
if(PARSE_OUTPUT_DIRECTORY)
|
|
clean_doc_output(${PARSE_OUTPUT_DIRECTORY})
|
|
endif()
|
|
mark_as_doc(doxygen)
|
|
if(PARSE_DEPENDS)
|
|
add_dependencies(doxygen ${PARSE_DEPENDS})
|
|
endif()
|
|
endfunction()
|