libcamera/Documentation/meson.build
Laurent Pinchart 53c4d4c34f Documentation: Generate source code documentation using Doxygen
Extend the documentation build system to automatically generate
documentation from source code using Doxygen. This is currently separate
from the sphinx documentation, and should be integrated using the
breathe (and possibly exhale) extensions.

As the Documentation/meson.build file needs to reference the variables
holding the source files, move the Documentation directory to the end of
the subdirs() in the top-level meson.build.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-12-12 20:45:24 +02:00

56 lines
1.5 KiB
Meson

doc_install_dir = join_paths(get_option('datadir'), 'doc', 'libcamera-@0@'.format(api_version))
#
# Doxygen
#
doxygen = find_program('doxygen', required: false)
if doxygen.found()
cdata = configuration_data()
cdata.set('VERSION', meson.project_version())
cdata.set('TOP_SRCDIR', meson.source_root())
cdata.set('TOP_BUILDDIR', meson.build_root())
doxyfile = configure_file(input: 'Doxyfile.in',
output: 'Doxyfile',
configuration: cdata,
install: false)
custom_target('doxygen',
input: [
doxyfile,
libcamera_api,
libcamera_headers,
libcamera_sources,
],
output: 'api-html',
command: [doxygen, doxyfile],
install: true,
install_dir: doc_install_dir)
endif
#
# Sphinx
#
sphinx = find_program('sphinx-build-3', required: false)
if not sphinx.found()
sphinx = find_program('sphinx-build', required: false)
endif
if sphinx.found()
docs_sources = [
'conf.py',
'contributing.rst',
'index.rst',
]
custom_target('documentation',
command: [sphinx, '-W', '-b', 'html', meson.current_source_dir(), '@OUTPUT@'],
input: docs_sources,
output: 'html',
build_by_default: true,
install: true,
install_dir: doc_install_dir)
endif