[v5,00/18] Split libcamera documentation in public and internal APIs
mbox series

Message ID 20240805143654.20870-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • Split libcamera documentation in public and internal APIs
Related show

Message

Laurent Pinchart Aug. 5, 2024, 2:36 p.m. UTC
Hello,

This series aims to improve the libcamera API documentation a little by adding
some content to the landing page and splitting it to two separate outputs for
the library's users and developers. The "public" run, intended for users, is a
much abridged version that only documents those objects intended to be used by
application developers.

The split is achieved by collecting file paths for public sources in meson and
passing them to a generated Doxyfile-public, which is used for the "public" run
of Doxygen. A second Doxyfile-internal retains the current behaviour for the
internal API run.

Compared to v4, I've tried to address some small issues I wasn't fully
satisfied with. This has resulted in a further 14 patches. This seems to
happen sometimes when I touch code, I apologize about it. On the upside,
the additional patches are small, and should therefore be easy to
review.

Patches 06/18 and 16/18, originally from Dan, have been significantly
modified. As a consequence, I've dropped the Reviewed-by tags. I haven't
touched Dan's patches 14/18 and 17/18, they are identifical to v4.

Daniel Scally (4):
  libcamera: Split public and internal source arrays
  Documentation: Add Thread support page
  Documentation: Split public/private documentation
  Documentation: Improve doxygen main page

Laurent Pinchart (14):
  libcamera: Drop path prefix from Doxygen file directive
  libcamera: Make all internal headers visible to Doxygen
  libcamera: Unify Doxygen file directive prefix for formats.h
  libcamera: Mark internal parts of public classes with \internal
  libcamera: Hide *::Private classes with __DOXYGEN_PUBLIC__
  libcamera: Add version.h to public headers
  libcamera: Drop libcamera_generated_ipa_headers from sources
  libcamera: Move IPA headers to the libcamera_private dependency
  libcamera: Consolidate all IPA headers in libcamera_ipa_headers
  libcamera: Add missing headers to libcamera_internal_headers
  libcamera: Consolidate tracepoint header in libcamera_internal_headers
  libcamera: Don't add libcamera_public_headers to
    libcamera_public_sources
  Documentation: Split doxygen_input in public and internal inputs
  libcamera: camera: Hide Camera::create() from the public API

 .../{Doxyfile.in => Doxyfile-common.in}       |  23 +---
 Documentation/Doxyfile-internal.in            |  31 +++++
 Documentation/Doxyfile-public.in              |  20 +++
 Documentation/gen-doxyfile.py                 |  46 +++++++
 Documentation/guides/pipeline-handler.rst     |   5 +-
 Documentation/mainpage.dox                    |  33 +++++
 Documentation/meson.build                     |  91 +++++++++++--
 Documentation/thread.dox                      | 122 +++++++++++++++++
 include/libcamera/internal/meson.build        |  18 ++-
 include/libcamera/ipa/meson.build             |   8 +-
 include/libcamera/meson.build                 |   9 +-
 src/ipa/ipu3/meson.build                      |   3 +-
 src/ipa/rkisp1/meson.build                    |   3 +-
 src/ipa/rpi/vc4/meson.build                   |   3 +-
 src/ipa/simple/meson.build                    |   3 +-
 src/ipa/vimc/meson.build                      |   3 +-
 src/libcamera/base/meson.build                |  25 ++--
 src/libcamera/base/thread.cpp                 | 123 ------------------
 src/libcamera/camera.cpp                      |   9 ++
 src/libcamera/camera_manager.cpp              |   3 +
 src/libcamera/converter.cpp                   |   2 +-
 .../converter/converter_v4l2_m2m.cpp          |   2 +-
 src/libcamera/converter/meson.build           |   2 +-
 src/libcamera/fence.cpp                       |   2 +-
 src/libcamera/formats.cpp                     |   2 +-
 src/libcamera/framebuffer.cpp                 |   7 +-
 src/libcamera/mapped_framebuffer.cpp          |   2 +-
 src/libcamera/meson.build                     |  56 ++++----
 src/libcamera/orientation.cpp                 |   2 +-
 src/libcamera/pipeline/imx8-isi/meson.build   |   2 +-
 src/libcamera/pipeline/ipu3/meson.build       |   2 +-
 src/libcamera/pipeline/mali-c55/meson.build   |   2 +-
 src/libcamera/pipeline/rkisp1/meson.build     |   2 +-
 src/libcamera/pipeline/rpi/common/meson.build |   2 +-
 src/libcamera/pipeline/rpi/vc4/meson.build    |   2 +-
 src/libcamera/pipeline/simple/meson.build     |   2 +-
 src/libcamera/pipeline/uvcvideo/meson.build   |   2 +-
 src/libcamera/pipeline/vimc/meson.build       |   2 +-
 src/libcamera/proxy/meson.build               |   2 +-
 src/libcamera/proxy/worker/meson.build        |   3 +-
 src/libcamera/request.cpp                     |   8 ++
 src/libcamera/sensor/meson.build              |   2 +-
 src/libcamera/software_isp/meson.build        |   2 +-
 src/libcamera/yaml_parser.cpp                 |   2 +-
 test/ipa/meson.build                          |   2 +-
 test/ipa/rkisp1/meson.build                   |   2 +-
 46 files changed, 454 insertions(+), 245 deletions(-)
 rename Documentation/{Doxyfile.in => Doxyfile-common.in} (63%)
 create mode 100644 Documentation/Doxyfile-internal.in
 create mode 100644 Documentation/Doxyfile-public.in
 create mode 100755 Documentation/gen-doxyfile.py
 create mode 100644 Documentation/mainpage.dox
 create mode 100644 Documentation/thread.dox


base-commit: 19bbca3c0b376ba0183f5db53472c8c46cd402b5