Moving the core.mojom documentation to its corresponding .cpp file (core_ipa_interface.cpp). This will allow Doxygen to generate the documentation for IPABuffer, IPASettings and IPAStream structures. Since the .mojom files are placed in include/ directory, the .cpp file will live in $sourcedir/src/libcamera/ipa/ - which can also contain documentation for other mojom generated IPA interfaces in subsequent commit. Also hide the constructors in generated IPA interface from doxygen, via #ifndef __DOXYGEN__. These constructors provide no major value in documenting them, instead will spew out doxygen warnings during the build. Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
81 lines
2.5 KiB
Meson
81 lines
2.5 KiB
Meson
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
doc_install_dir = get_option('datadir') / 'doc' / 'libcamera-@0@'.format(libcamera_version)
|
|
|
|
#
|
|
# Doxygen
|
|
#
|
|
|
|
doxygen = find_program('doxygen', required : get_option('documentation'))
|
|
dot = find_program('dot', required : get_option('documentation'))
|
|
|
|
if doxygen.found() and dot.found()
|
|
cdata = configuration_data()
|
|
cdata.set('VERSION', 'v@0@'.format(libcamera_git_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)
|
|
|
|
custom_target('doxygen',
|
|
input : [
|
|
doxyfile,
|
|
libcamera_internal_headers,
|
|
libcamera_ipa_headers,
|
|
libcamera_ipa_interfaces,
|
|
libcamera_public_headers,
|
|
libcamera_sources,
|
|
libipa_headers,
|
|
libipa_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 : get_option('documentation'))
|
|
endif
|
|
|
|
if sphinx.found()
|
|
docs_sources = [
|
|
'coding-style.rst',
|
|
'conf.py',
|
|
'contributing.rst',
|
|
'docs.rst',
|
|
'environment_variables.rst',
|
|
'guides/application-developer.rst',
|
|
'guides/introduction.rst',
|
|
'guides/ipa.rst',
|
|
'guides/pipeline-handler.rst',
|
|
'guides/tracing.rst',
|
|
'index.rst',
|
|
'sensor_driver_requirements.rst',
|
|
'../README.rst',
|
|
]
|
|
|
|
release = 'release=v' + libcamera_git_version
|
|
|
|
custom_target('documentation',
|
|
command : [sphinx, '-D', release, '-q', '-W', '-b', 'html',
|
|
meson.current_source_dir(), '@OUTPUT@'],
|
|
input : docs_sources,
|
|
output : 'html',
|
|
build_by_default : true,
|
|
install : true,
|
|
install_dir : doc_install_dir)
|
|
|
|
custom_target('documentation-linkcheck',
|
|
command: [sphinx, '-W', '-b', 'linkcheck', meson.current_source_dir(), '@OUTPUT@'],
|
|
build_always_stale: true,
|
|
input: docs_sources,
|
|
output: 'linkcheck')
|
|
endif
|