libcamera/Documentation
Daniel Scally 7dc38adcb5 Documentation: Split public/private documentation
The API reference pages generated by Doxygen are comprehensive, but
therefore quite overwhelming for application developers who will
likely never need to use the majority of the library's objects. To
reduce the complexity of the documentation, split it into two runs of
doxygen.

The first run of doxygen is for the public API. We pass a specific list
of source files to parse, which is built from the arrays of public
headers and sources in meson build files. This ensures that we only
generate the documentation for code from those files.

A custom Python script is needed to add the list of input files to
Doxyfile, as several of the objects included in the header and source
array are custom_tgt objects, which can't be handled as strings to
populate a variable in the configuration data.

The headers defining the Extensible and Object classes (class.h and
object.h respectively), as well as the corresponding source files, are
excluded from the public API documentation despite being referenced in
the meson public headers and sources arrays. This is due to the fact
that public API classes inherit from Extensible and Object, making the
Extensible and Object classes part of the public ABI. Those two base
classes are however implementation details and must not be accessed
directly by application code.

The second run of doxygen is for the internal API. This contains
documentation for all of the library's objects as it currently does.
This set will now be output into build/Documentation/internal-api-html.

Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
Co-developed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
2024-08-14 04:17:40 +03:00
..
api-html licenses: Add SPDX headers to RST documentation 2020-04-15 19:51:56 +03:00
guides libcamera: Split public and internal source arrays 2024-08-07 17:57:08 +03:00
images/rotation Documentation: Add figures to document Orientation 2023-10-23 16:05:54 +03:00
theme Documentation: theme: Fix compilation with Sphinx >= 7.0.0 2023-07-31 22:58:58 +03:00
binning.svg Documentation: Introduce Camera Sensor Model 2023-09-27 14:35:33 +03:00
camera-sensor-model.rst Documentation: camera-sensor-model: Support Sphinx < 2.0 2024-01-09 15:35:06 +00:00
code-of-conduct.rst Documentation: contributing: Integrate the code of conduct 2023-11-25 19:01:07 +02:00
coding-style.rst libcamera: Remove spaces at end of lines 2024-08-05 18:25:53 +03:00
conf.py Documentation: Use language 'en' for Sphinx 5.0.0 2022-06-20 18:19:14 +02:00
contributing.rst Documentation: contributing: Integrate the code of conduct 2023-11-25 19:01:07 +02:00
docs.rst libcamera: Rename 'method' to 'function' 2021-08-09 15:40:32 +03:00
Doxyfile-common.in Documentation: Split public/private documentation 2024-08-14 04:17:40 +03:00
Doxyfile-internal.in Documentation: Split public/private documentation 2024-08-14 04:17:40 +03:00
Doxyfile-public.in Documentation: Split public/private documentation 2024-08-14 04:17:40 +03:00
environment_variables.rst libcamera: Remove spaces at end of lines 2024-08-05 18:25:53 +03:00
gen-doxyfile.py Documentation: Split public/private documentation 2024-08-14 04:17:40 +03:00
getting-started.rst Documentation: Add missing SPDX headers 2022-09-30 21:50:56 +03:00
index.rst libcamera: Add "Software ISP benchmarking" documentation 2024-04-16 13:00:21 +01:00
lens_driver_requirements.rst libcamera: camera_lens: Add a new class to model a camera lens 2021-12-03 10:23:26 +00:00
meson.build Documentation: Split public/private documentation 2024-08-14 04:17:40 +03:00
python-bindings.rst Documentation: Fix list indentation 2023-11-28 14:08:13 +02:00
sensor_driver_requirements.rst documentation: sensor_drivers: Document H/V flip 2023-01-30 12:04:17 +01:00
sensor_model.svg Documentation: Introduce Camera Sensor Model 2023-09-27 14:35:33 +03:00
skipping.svg Documentation: Introduce Camera Sensor Model 2023-09-27 14:35:33 +03:00
software-isp-benchmarking.rst libcamera: Add "Software ISP benchmarking" documentation 2024-04-16 13:00:21 +01:00
thread-safety.dox Documentation: Add Thread safety page 2024-08-14 03:57:47 +03:00