From patchwork Mon Aug 5 14:36:36 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 20786 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 14FE7C323E for ; Mon, 5 Aug 2024 14:37:20 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9590863382; Mon, 5 Aug 2024 16:37:18 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="kNkbz2qZ"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4FE0E63369 for ; Mon, 5 Aug 2024 16:37:17 +0200 (CEST) Received: from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi [81.175.209.231]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 8280C581 for ; Mon, 5 Aug 2024 16:36:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1722868585; bh=7ntJU9jBzI/xWGduJ2G+wQ+1enfSc+nxrDT3Ikt+xNM=; h=From:To:Subject:Date:From; b=kNkbz2qZrXsbYw/fmKzib6+n+n2rbZH+3ESSO9qGA0v83hid/+NNlULEEN8lMHCd1 +tg9fjQ4TItC7/FchiTwJZjbR1YEGNYRkj37MyJJ3oFGOl/4udpSKP3TbsWMJu5+Ju K2xGDtDz/8Ox7lMrmekc1OL99feMiGqjClIgDMQ0= From: Laurent Pinchart To: libcamera-devel@lists.libcamera.org Subject: [PATCH v5 00/18] Split libcamera documentation in public and internal APIs Date: Mon, 5 Aug 2024 17:36:36 +0300 Message-ID: <20240805143654.20870-1-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.44.2 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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