Merge branch 'doxygen-update' into 'main'

Draft: Extension of the creation of Doxygen documents

See merge request dbus/dbus!161
This commit is contained in:
Ralf Habacker 2026-01-10 01:23:48 +00:00
commit 5a83fafcce
6 changed files with 354 additions and 122 deletions

View file

@ -7,6 +7,8 @@ set(CMAKE_LEGACY_CYGWIN_WIN32 0)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
message(STATUS "Found CMake: ${CMAKE_COMMAND} (found version \"${CMAKE_VERSION}\")")
# detect version
include(MacrosMeson)
meson_init(meson.build)
@ -593,7 +595,7 @@ set(DBUS_SYSTEM_BUS_DEFAULT_ADDRESS "unix:path=${DBUS_RUNSTATEDIR}/dbus/system_b
# Because we only run it on Unix, it's fine to make it a shell script.
if(UNIX AND (NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows"))
execute_process(
COMMAND "${CMAKE_SOURCE_DIR}/tools/check-runstatedir.sh" "${DBUS_RUNSTATEDIR}/dbus/system_bus_socket")
COMMAND "${PROJECT_SOURCE_DIR}/tools/check-runstatedir.sh" "${DBUS_RUNSTATEDIR}/dbus/system_bus_socket")
endif()
if(WIN32)
@ -719,8 +721,8 @@ message(" install libexecdir: ${CMAKE_INSTALL_FULL_LIBEXECDIR} "
message(" install bindir: ${CMAKE_INSTALL_FULL_BINDIR} ")
message(" install sysconfdir: ${CMAKE_INSTALL_FULL_SYSCONFDIR} ")
message(" install datadir: ${CMAKE_INSTALL_FULL_DATADIR} ")
message(" source code location: ${CMAKE_SOURCE_DIR} ")
message(" build dir: ${CMAKE_BINARY_DIR} ")
message(" source code location: ${PROJECT_SOURCE_DIR} ")
message(" build dir: ${PROJECT_BINARY_DIR} ")
message(" c compiler: ${C_COMPILER} ")
message(" cflags: ${CMAKE_C_FLAGS} ")
message(" cflags debug: ${CMAKE_C_FLAGS_DEBUG} ")

View file

@ -1,189 +1,341 @@
# Doxyfile 0.1
# Doxyfile 1.8.14
#---------------------------------------------------------------------------
# General configuration options
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = D-Bus
PROJECT_NUMBER = @VERSION@
OUTPUT_DIRECTORY = @top_builddir@/doc/api
PROJECT_BRIEF =
PROJECT_LOGO =
OUTPUT_DIRECTORY = @DOXYGEN_OUTPUT_DIRECTORY@
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
FULL_PATH_NAMES = NO
STRIP_FROM_PATH =
INTERNAL_DOCS = NO
STRIP_CODE_COMMENTS = YES
CASE_SENSE_NAMES = YES
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = @DOXYGEN_STRIP_FROM_PATH@
STRIP_FROM_INC_PATH = @DOXYGEN_STRIP_FROM_INC_PATH@
SHORT_NAMES = NO
HIDE_SCOPE_NAMES = NO
VERBATIM_HEADERS = YES
SHOW_INCLUDE_FILES = YES
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 0
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PACKAGE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
GENERATE_TODOLIST = NO
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
ALIASES =
ENABLED_SECTIONS =
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
OPTIMIZE_OUTPUT_FOR_C = YES
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_FORMAT =
WARN_LOGFILE =
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT =
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
# Configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = @top_srcdir@/dbus @top_builddir@/dbus
INPUT = @DOXYGEN_INPUT@
FILE_PATTERNS = *.c *.h
INPUT_ENCODING = UTF-8
RECURSIVE = YES
#EXCLUDE = test
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories.
EXCLUDE_PATTERNS = Makefile.* ChangeLog CHANGES CHANGES.* README \
README.* *.png AUTHORS DESIGN DESIGN.* *.desktop \
DESKTOP* COMMENTS HOWTO magic NOTES TODO THANKS
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = Makefile.* \
ChangeLog \
CHANGES \
CHANGES.* \
README \
README.* \
*.png \
AUTHORS \
DESIGN \
DESIGN.* \
*.desktop \
DESKTOP* \
COMMENTS \
HOWTO \
magic \
NOTES \
TODO \
THANKS
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# configuration options related to source browsing
# Configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT =
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
HTML_OUTPUT =
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = NO
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = YES
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = @DOXYGEN_GENERATE_QHP@
QCH_FILE = @DOXYGEN_QCH_FILE@
QHP_NAMESPACE = org.freedesktop.dbus
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION = @DOXYGEN_QHG_LOCATION@
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
HTML_TIMESTAMP = NO
EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT =
LATEX_OUTPUT =
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = NO
USE_PDFLATEX = NO
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_SOURCE_CODE = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT =
RTF_OUTPUT =
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
RTF_SOURCE_CODE = NO
#---------------------------------------------------------------------------
# configuration options related to the man page output
# Configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = @DBUS_GENERATE_MAN@
MAN_OUTPUT = man
MAN_EXTENSION = .3dbus
MAN_SUBDIR =
MAN_LINKS = YES
#---------------------------------------------------------------------------
# configuration options related to the XML output
# Configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = YES
XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = "DBUS_BEGIN_DECLS=" \
"DBUS_END_DECLS=" \
"DOXYGEN_SHOULD_SKIP_THIS" \
"DBUS_GNUC_DEPRECATED=" \
"_DBUS_GNUC_PRINTF(from,to)="
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = "DBUS_BEGIN_DECLS=" \
"DBUS_END_DECLS=" \
"DOXYGEN_SHOULD_SKIP_THIS" \
"DBUS_GNUC_DEPRECATED=" \
"_DBUS_GNUC_PRINTF(from,to)="
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to external references
# Configuration options related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
PERL_PATH =
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
PERL_PATH =
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HAVE_DOT = NO
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = @DOXYGEN_HAVE_DOT@
DOT_NUM_THREADS = 0
DOT_FONTNAME = Helvetica
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
TEMPLATE_RELATIONS = YES
HIDE_UNDOC_RELATIONS = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
GRAPHICAL_HIERARCHY = YES
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 640
MAX_DOT_GRAPH_HEIGHT = 1024
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 500
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::addtions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
#---------------------------------------------------------------------------
# Configuration::qt creator help support
#---------------------------------------------------------------------------
GENERATE_QHP = @DOXYGEN_GENERATE_QHP@
QHP_NAMESPACE = org.freedesktop.dbus
QHG_LOCATION = @DOXYGEN_QHG_LOCATION@
QCH_FILE = @DOXYGEN_QCH_FILE@

View file

@ -140,7 +140,7 @@ DBUS_DISABLE_CHECKS:BOOL=OFF
DBUS_ENABLE_ANSI:BOOL=OFF
// build DOXYGEN documentation (requires Doxygen)
DBUS_ENABLE_DOXYGEN_DOCS:BOOL=OFF
DBUS_ENABLE_DOXYGEN_DOCS:STRING=OFF|ON|AUTO|FULL
// Unconditionally make all compiler warnings fatal
ENABLE_WERROR:BOOL=OFF

View file

@ -301,17 +301,64 @@ macro(add_library_version_info _sources _name)
endmacro()
#
# provide option with three states AUTO, ON, OFF
# provide option with multiple values
#
macro(add_auto_option _name _text _default)
macro(add_multi_option _name _text _default _values)
if(NOT DEFINED ${_name})
set(${_name} ${_default} CACHE STRING "${_text}" FORCE)
else()
set(${_name} ${_default} CACHE STRING "${_text}")
endif()
set_property(CACHE ${_name} PROPERTY STRINGS AUTO ON OFF)
set_property(CACHE ${_name} PROPERTY STRINGS ${_values})
endmacro()
#
# Ensure that if a multi state feature is set to ON,
# its requirements have been met. Fail with a fatal error if not.
#
# _name: name of a variable ENABLE_FOO representing a tristate ON/OFF/AUTO feature
# _text: human-readable description of the feature enabled by _name, for the
# error message
# _var: name of a variable representing a system property we checked for,
# such as an executable that must exist for the feature enabled by _name to work
# _vartext: what we checked for, for the error message
#
macro(check_multi_option _name _text _var _vartext)
set(_nameval ${${_name}})
set(_varval ${${_var}})
#message("debug: _name ${_name} _nameval \"${_nameval}\" _var ${_var} ${_varval}")
if("${_nameval}" AND NOT "${_nameval}" STREQUAL "AUTO" AND NOT "${_varval}")
message(FATAL_ERROR "${_text} requested but ${_vartext} not found")
endif()
endmacro()
#
# Set the state of a variable depending on the state of an 'auto' option
# and a system property.
#
# _name: name of a variable ENABLE_FOO representing a tristate ON/OFF/AUTO feature
# _var: name of a variable representing a system property we checked for,
# such as an executable that must exist for the feature enabled by _name to work
# _result: name of the variable to which the determined state is assigned
#
macro(set_from_multi_option _name _var _result)
set(_nameval ${${_name}})
set(_varval ${${_var}})
if(NOT _nameval OR (_nameval AND NOT _varval))
#message("debug: _name ${_name} = ${_nameval} _var ${_var} = ${_varval} ${_result} -> OFF")
set(${_result} OFF PARENT_SCOPE)
else()
#message("debug: _name ${_name} = ${_nameval} _var ${_var} = ${_varval} ${_result} -> ON")
set(${_result} ON PARENT_SCOPE)
endif()
endmacro()
#
# provide option with three states AUTO, ON, OFF
#
macro(add_auto_option _name _text _default)
add_multi_option(${_name} ${_text} ${_default} "AUTO;ON;OFF")
endmacro()
#
# Ensure that if a tristate ON/OFF/AUTO feature is set to ON,
@ -325,12 +372,20 @@ endmacro()
# _vartext: what we checked for, for the error message
#
macro(check_auto_option _name _text _var _vartext)
set(_nameval ${${_name}})
set(_varval ${${_var}})
#message("debug: _name ${_name} ${_nameval} _var ${_var} ${_varval}")
if(${_nameval} AND NOT ${_nameval} STREQUAL "AUTO" AND NOT ${_varval})
message(FATAL_ERROR "${_text} requested but ${_vartext} not found")
endif()
check_multi_option(${_name} ${_text} ${_var} ${_vartext})
endmacro()
#
# Set the state of a variable depending on the state of an 'auto' option
# and a system property.
#
# _name: name of a variable ENABLE_FOO representing a tristate ON/OFF/AUTO feature
# _var: name of a variable representing a system property we checked for,
# such as an executable that must exist for the feature enabled by _name to work
# _result: name of the variable to which the determined state is assigned
#
macro(set_from_auto_option _name _var _result)
set_from_multi_option(${_name} ${_var} ${_result})
endmacro()
#

View file

@ -7,13 +7,14 @@ find_package(Doxygen)
add_custom_target(doc ALL)
if(DOXYGEN_EXECUTABLE)
option(DBUS_ENABLE_DOXYGEN_DOCS "build DOXYGEN documentation (requires Doxygen)" ON)
add_multi_option(DBUS_ENABLE_DOXYGEN_DOCS "build DOXYGEN documentation (requires Doxygen)" AUTO "OFF;ON;AUTO")
add_auto_option(ENABLE_QT_HELP "build qt help documentation (requires qhelpgenerator(-qt5)); set INSTALL_QCH_DIR for custom qch installation path" AUTO)
endif()
check_multi_option(DBUS_ENABLE_DOXYGEN_DOCS "doxygen documentation" DOXYGEN_EXECUTABLE "doxygen")
set(DOXYGEN_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/api)
if(DBUS_ENABLE_DOXYGEN_DOCS)
set(top_srcdir ${PROJECT_SOURCE_DIR})
set(top_builddir ${PROJECT_BINARY_DIR})
if(WIN32)
set(DBUS_GENERATE_MAN NO)
else()
@ -24,22 +25,39 @@ if(DBUS_ENABLE_DOXYGEN_DOCS)
endif()
find_program(QHELPGENERATOR_EXECUTABLE NAMES qhelpgenerator qhelpgenerator-qt5)
check_auto_option(ENABLE_QT_HELP "Qt help" QHELPGENERATOR_EXECUTABLE "qhelpgenerator")
if(ENABLE_QT_HELP AND QHELPGENERATOR_EXECUTABLE)
set_from_auto_option(ENABLE_QT_HELP QHELPGENERATOR_EXECUTABLE DBUS_ENABLE_QTHELP_DOCS)
set(DOXYGEN_INPUT "${PROJECT_SOURCE_DIR}/dbus ${PROJECT_BINARY_DIR}/dbus")
file(GLOB api_files "${PROJECT_SOURCE_DIR}/dbus/*.[ch]*")
if(DBUS_ENABLE_DOXYGEN_DOCS STREQUAL "FULL")
file(GLOB bus_files "${PROJECT_SOURCE_DIR}/bus/*.[ch]*")
file(GLOB test_files "${PROJECT_SOURCE_DIR}/test/*.[ch]*")
set(DOXYGEN_INPUT "${DOXYGEN_INPUT} ${PROJECT_SOURCE_DIR}/bus ${PROJECT_SOURCE_DIR}/test")
set(doc_files ${api_files} ${bus_files} ${test_files})
find_program(DOT_EXECUTABLE NAMES dot)
if(DOT_EXECUTABLE)
set(DOXYGEN_HAVE_DOT YES)
endif()
else()
set(doc_files ${api_files})
set(DOXYGEN_HAVE_DOT NO)
endif()
set(DOXYGEN_STRIP_FROM_PATH ${PROJECT_SOURCE_DIR})
set(DOXYGEN_STRIP_FROM_INC_PATH ${PROJECT_SOURCE_DIR})
if(DBUS_ENABLE_QTHELP_DOCS)
message(STATUS "${QHELPGENERATOR_EXECUTABLE} found")
set(DOXYGEN_GENERATE_QHP YES)
set(DOXYGEN_QHG_LOCATION ${QHELPGENERATOR_EXECUTABLE})
set(DOXYGEN_QCH_FILE ${CMAKE_CURRENT_BINARY_DIR}/api/qch/dbus-${VERSION}.qch)
set(DBUS_ENABLE_QTHELP_DOCS ON PARENT_SCOPE)
set(DOXYGEN_QCH_FILE ${DOXYGEN_OUTPUT_DIRECTORY}/qch/dbus-${VERSION}.qch)
install(FILES ${DOXYGEN_QCH_FILE} DESTINATION ${INSTALL_QCH_DIR})
else()
set(DOXYGEN_GENERATE_QHP NO)
set(DBUS_ENABLE_QTHELP_DOCS OFF PARENT_SCOPE)
endif()
configure_file(../Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile )
file(GLOB dbus_files "${PROJECT_SOURCE_DIR}/dbus/*.[ch]*")
configure_file(../Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/doxygen.stamp
DEPENDS ${PROJECT_SOURCE_DIR}/Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile ${dbus_files}
DEPENDS ${PROJECT_SOURCE_DIR}/Doxyfile.in ${PROJECT_BINARY_DIR}/Doxyfile ${doc_files}
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/api/html
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/api/man
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/api/xml
@ -67,7 +85,7 @@ if(DBUS_HAVE_XSLTPROC AND DBUS_ENABLE_DOXYGEN_DOCS)
COMMAND ${XSLTPROC_EXECUTABLE}
-o ${CMAKE_CURRENT_BINARY_DIR}/dbus.devhelp2
${CMAKE_CURRENT_SOURCE_DIR}/doxygen_to_devhelp.xsl
${CMAKE_CURRENT_BINARY_DIR}/api/xml/index.xml
${DOXYGEN_OUTPUT_DIRECTORY}/xml/index.xml
DEPENDS
${CMAKE_CURRENT_SOURCE_DIR}/doxygen_to_devhelp.xsl
${CMAKE_CURRENT_BINARY_DIR}/doxygen.stamp

View file

@ -371,6 +371,11 @@ else
data_config.set('DOXYGEN_QHG_LOCATION', '')
data_config.set('DOXYGEN_GENERATE_QHP', 'NO')
endif
data_config.set('DOXYGEN_OUTPUT_DIRECTORY', meson.current_build_dir() / 'doc' / 'api')
data_config.set('DOXYGEN_INPUT', meson.project_source_root() / 'dbus' + ' ' + meson.project_build_root() / 'dbus')
data_config.set('DOXYGEN_STRIP_FROM_PATH', meson.project_source_root())
data_config.set('DOXYGEN_STRIP_FROM_INC_PATH', meson.project_source_root())
data_config.set('DOXYGEN_HAVE_DOT', 'NO')
data_config.set('top_srcdir', meson.project_source_root())
data_config.set('top_builddir', meson.project_build_root())