Patch Detail
Show a patch.
GET /api/patches/20792/?format=api
{ "id": 20792, "url": "https://patchwork.libcamera.org/api/patches/20792/?format=api", "web_url": "https://patchwork.libcamera.org/patch/20792/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20240805143654.20870-7-laurent.pinchart@ideasonboard.com>", "date": "2024-08-05T14:36:42", "name": "[v5,06/18] libcamera: Split public and internal source arrays", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "8d5948a57f8b33b622bab88e5c47a330dd3e13d3", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/20792/mbox/", "series": [ { "id": 4488, "url": "https://patchwork.libcamera.org/api/series/4488/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4488", "date": "2024-08-05T14:36:36", "name": "Split libcamera documentation in public and internal APIs", "version": 5, "mbox": "https://patchwork.libcamera.org/series/4488/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/20792/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/20792/checks/", "tags": {}, "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 4DBDDC323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 5 Aug 2024 14:37:42 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CF68B633C7;\n\tMon, 5 Aug 2024 16:37:41 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E07C16338A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 5 Aug 2024 16:37:25 +0200 (CEST)", "from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 55B74581;\n\tMon, 5 Aug 2024 16:36:34 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"acfSczXZ\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1722868594;\n\tbh=kEY9HO99CX38+CHsUx5k+fnQfete750febrmtR1qBfE=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=acfSczXZV0aoZhA0f3t/xZeYU6aJj5qeLNLS43cybxZBrd1bim5a46M+2+EdleoFa\n\t/hiT6TVLBcMBl5UCDhj72wr+HUJYPZucXgyvDWn2nGBCJMVxL6ETGMVkTSqzywW/3y\n\tbeKZlat41NNWTojfLGf8z9nsWtDANYbDUCqnd4S8=", "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Daniel Scally <dan.scally@ideasonboard.com>", "Subject": "[PATCH v5 06/18] libcamera: Split public and internal source arrays", "Date": "Mon, 5 Aug 2024 17:36:42 +0300", "Message-ID": "<20240805143654.20870-7-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.44.2", "In-Reply-To": "<20240805143654.20870-1-laurent.pinchart@ideasonboard.com>", "References": "<20240805143654.20870-1-laurent.pinchart@ideasonboard.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "From: Daniel Scally <dan.scally@ideasonboard.com>\n\nMeson array variables hold lists of libcamera's source files. To help\nfacilitate the splitting of Doxygen generated documentation into\ndistinct public and internal versions, split those arrays to separate\npublic and internal variables.\n\nSigned-off-by: Daniel Scally <dan.scally@ideasonboard.com>\nCo-developed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\nChanges since v4:\n\n- Drop the libcamera_base_sources and libcamera_sources variables to\n avoid incorrect usage in the future\n- Move the libcamera_internal_headers split to a separate patch to ease\n review\n---\n Documentation/guides/pipeline-handler.rst | 5 +-\n Documentation/meson.build | 6 ++-\n src/libcamera/base/meson.build | 25 +++++----\n src/libcamera/converter/meson.build | 2 +-\n src/libcamera/meson.build | 52 +++++++++++--------\n src/libcamera/pipeline/imx8-isi/meson.build | 2 +-\n src/libcamera/pipeline/ipu3/meson.build | 2 +-\n src/libcamera/pipeline/mali-c55/meson.build | 2 +-\n src/libcamera/pipeline/rkisp1/meson.build | 2 +-\n src/libcamera/pipeline/rpi/common/meson.build | 2 +-\n src/libcamera/pipeline/rpi/vc4/meson.build | 2 +-\n src/libcamera/pipeline/simple/meson.build | 2 +-\n src/libcamera/pipeline/uvcvideo/meson.build | 2 +-\n src/libcamera/pipeline/vimc/meson.build | 2 +-\n src/libcamera/proxy/meson.build | 2 +-\n src/libcamera/sensor/meson.build | 2 +-\n src/libcamera/software_isp/meson.build | 2 +-\n 17 files changed, 65 insertions(+), 49 deletions(-)", "diff": "diff --git a/Documentation/guides/pipeline-handler.rst b/Documentation/guides/pipeline-handler.rst\nindex 7e45cdb84b85..5aa09e90f419 100644\n--- a/Documentation/guides/pipeline-handler.rst\n+++ b/Documentation/guides/pipeline-handler.rst\n@@ -151,13 +151,14 @@ integrates with the libcamera build system, and a *vivid.cpp* file that matches\n the name of the pipeline.\n \n In the *meson.build* file, add the *vivid.cpp* file as a build source for\n-libcamera by adding it to the global meson ``libcamera_sources`` variable:\n+libcamera by adding it to the global meson ``libcamera_internal_sources``\n+variable:\n \n .. code-block:: none\n \n # SPDX-License-Identifier: CC0-1.0\n \n- libcamera_sources += files([\n+ libcamera_internal_sources += files([\n 'vivid.cpp',\n ])\n \ndiff --git a/Documentation/meson.build b/Documentation/meson.build\nindex 30d395234952..070420715bd1 100644\n--- a/Documentation/meson.build\n+++ b/Documentation/meson.build\n@@ -31,12 +31,14 @@ if doxygen.found() and dot.found()\n doxygen_input = [\n doxyfile,\n libcamera_base_headers,\n- libcamera_base_sources,\n+ libcamera_base_public_sources,\n+ libcamera_base_internal_sources,\n libcamera_internal_headers,\n libcamera_ipa_headers,\n libcamera_ipa_interfaces,\n libcamera_public_headers,\n- libcamera_sources,\n+ libcamera_public_sources,\n+ libcamera_internal_sources,\n libipa_headers,\n libipa_sources,\n ]\ndiff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build\nindex 4a228d335ba4..a742dfdfeb24 100644\n--- a/src/libcamera/base/meson.build\n+++ b/src/libcamera/base/meson.build\n@@ -1,25 +1,28 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_base_sources = files([\n- 'backtrace.cpp',\n- 'class.cpp',\n+libcamera_base_public_sources = files([\n 'bound_method.cpp',\n+ 'class.cpp',\n+ 'flags.cpp',\n+ 'object.cpp',\n+ 'shared_fd.cpp',\n+ 'signal.cpp',\n+ 'unique_fd.cpp',\n+])\n+\n+libcamera_base_internal_sources = files([\n+ 'backtrace.cpp',\n 'event_dispatcher.cpp',\n 'event_dispatcher_poll.cpp',\n 'event_notifier.cpp',\n 'file.cpp',\n- 'flags.cpp',\n 'log.cpp',\n 'memfd.cpp',\n 'message.cpp',\n 'mutex.cpp',\n- 'object.cpp',\n 'semaphore.cpp',\n- 'shared_fd.cpp',\n- 'signal.cpp',\n 'thread.cpp',\n 'timer.cpp',\n- 'unique_fd.cpp',\n 'utils.cpp',\n ])\n \n@@ -50,7 +53,11 @@ libcamera_base_deps = [\n libcamera_base_args = [ '-DLIBCAMERA_BASE_PRIVATE' ]\n \n libcamera_base_lib = shared_library('libcamera-base',\n- [libcamera_base_sources, libcamera_base_headers],\n+ [\n+ libcamera_base_public_sources,\n+ libcamera_base_internal_sources,\n+ libcamera_base_headers,\n+ ],\n version : libcamera_version,\n soversion : libcamera_soversion,\n name_prefix : '',\ndiff --git a/src/libcamera/converter/meson.build b/src/libcamera/converter/meson.build\nindex 2aa72fe456a4..af1a80fec683 100644\n--- a/src/libcamera/converter/meson.build\n+++ b/src/libcamera/converter/meson.build\n@@ -1,5 +1,5 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'converter_v4l2_m2m.cpp'\n ])\ndiff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\nindex 89504cee1146..deffff356091 100644\n--- a/src/libcamera/meson.build\n+++ b/src/libcamera/meson.build\n@@ -1,14 +1,26 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources = files([\n- 'bayer_format.cpp',\n- 'byte_stream_buffer.cpp',\n+libcamera_public_sources = files([\n 'camera.cpp',\n- 'camera_controls.cpp',\n- 'camera_lens.cpp',\n 'camera_manager.cpp',\n 'color_space.cpp',\n 'controls.cpp',\n+ 'fence.cpp',\n+ 'framebuffer.cpp',\n+ 'framebuffer_allocator.cpp',\n+ 'geometry.cpp',\n+ 'orientation.cpp',\n+ 'pixel_format.cpp',\n+ 'request.cpp',\n+ 'stream.cpp',\n+ 'transform.cpp',\n+])\n+\n+libcamera_internal_sources = files([\n+ 'bayer_format.cpp',\n+ 'byte_stream_buffer.cpp',\n+ 'camera_controls.cpp',\n+ 'camera_lens.cpp',\n 'control_serializer.cpp',\n 'control_validator.cpp',\n 'converter.cpp',\n@@ -16,11 +28,7 @@ libcamera_sources = files([\n 'device_enumerator.cpp',\n 'device_enumerator_sysfs.cpp',\n 'dma_buf_allocator.cpp',\n- 'fence.cpp',\n 'formats.cpp',\n- 'framebuffer.cpp',\n- 'framebuffer_allocator.cpp',\n- 'geometry.cpp',\n 'ipa_controls.cpp',\n 'ipa_data_serializer.cpp',\n 'ipa_interface.cpp',\n@@ -33,17 +41,12 @@ libcamera_sources = files([\n 'mapped_framebuffer.cpp',\n 'media_device.cpp',\n 'media_object.cpp',\n- 'orientation.cpp',\n 'pipeline_handler.cpp',\n- 'pixel_format.cpp',\n 'process.cpp',\n 'pub_key.cpp',\n- 'request.cpp',\n 'shared_mem_object.cpp',\n 'source_paths.cpp',\n- 'stream.cpp',\n 'sysfs.cpp',\n- 'transform.cpp',\n 'v4l2_device.cpp',\n 'v4l2_pixelformat.cpp',\n 'v4l2_subdevice.cpp',\n@@ -51,9 +54,9 @@ libcamera_sources = files([\n 'yaml_parser.cpp',\n ])\n \n-libcamera_sources += libcamera_public_headers\n-libcamera_sources += libcamera_generated_ipa_headers\n-libcamera_sources += libcamera_tracepoint_header\n+libcamera_public_sources += libcamera_public_headers\n+libcamera_internal_sources += libcamera_generated_ipa_headers\n+libcamera_internal_sources += libcamera_tracepoint_header\n \n includes = [\n libcamera_includes,\n@@ -104,14 +107,14 @@ endif\n if liblttng.found()\n tracing_enabled = true\n config_h.set('HAVE_TRACING', 1)\n- libcamera_sources += files(['tracepoints.cpp'])\n+ libcamera_internal_sources += files(['tracepoints.cpp'])\n else\n tracing_enabled = false\n endif\n \n if libudev.found()\n config_h.set('HAVE_LIBUDEV', 1)\n- libcamera_sources += files([\n+ libcamera_internal_sources += files([\n 'device_enumerator_udev.cpp',\n ])\n endif\n@@ -152,7 +155,7 @@ foreach mode, input_files : controls_mode_files\n '-r', ranges_file, '@INPUT@'])\n endforeach\n \n-libcamera_sources += control_sources\n+libcamera_public_sources += control_sources\n \n gen_version = meson.project_source_root() / 'utils' / 'gen-version.sh'\n \n@@ -163,7 +166,7 @@ version_cpp = vcs_tag(command : [gen_version, meson.project_build_root(), meson.\n output : 'version.cpp',\n fallback : meson.project_version())\n \n-libcamera_sources += version_cpp\n+libcamera_public_sources += version_cpp\n \n if ipa_sign_module\n ipa_pub_key_cpp = custom_target('ipa_pub_key_cpp',\n@@ -171,7 +174,7 @@ if ipa_sign_module\n output : 'ipa_pub_key.cpp',\n command : [gen_ipa_pub_key, '@INPUT@', '@OUTPUT@'])\n \n- libcamera_sources += ipa_pub_key_cpp\n+ libcamera_internal_sources += ipa_pub_key_cpp\n endif\n \n libcamera_deps += [\n@@ -191,7 +194,10 @@ libcamera_deps += [\n # for the presence or abscence of the dynamic tag.\n \n libcamera = shared_library('libcamera',\n- libcamera_sources,\n+ [\n+ libcamera_public_sources,\n+ libcamera_internal_sources,\n+ ],\n version : libcamera_version,\n soversion : libcamera_soversion,\n name_prefix : '',\ndiff --git a/src/libcamera/pipeline/imx8-isi/meson.build b/src/libcamera/pipeline/imx8-isi/meson.build\nindex ffd0ce54ce92..b369b03141cb 100644\n--- a/src/libcamera/pipeline/imx8-isi/meson.build\n+++ b/src/libcamera/pipeline/imx8-isi/meson.build\n@@ -1,5 +1,5 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'imx8-isi.cpp'\n ])\ndiff --git a/src/libcamera/pipeline/ipu3/meson.build b/src/libcamera/pipeline/ipu3/meson.build\nindex a1b0b31ac5bc..f2904b4a8929 100644\n--- a/src/libcamera/pipeline/ipu3/meson.build\n+++ b/src/libcamera/pipeline/ipu3/meson.build\n@@ -1,6 +1,6 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'cio2.cpp',\n 'frames.cpp',\n 'imgu.cpp',\ndiff --git a/src/libcamera/pipeline/mali-c55/meson.build b/src/libcamera/pipeline/mali-c55/meson.build\nindex 30fd29b928d5..eba8e5a39054 100644\n--- a/src/libcamera/pipeline/mali-c55/meson.build\n+++ b/src/libcamera/pipeline/mali-c55/meson.build\n@@ -1,5 +1,5 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'mali-c55.cpp'\n ])\ndiff --git a/src/libcamera/pipeline/rkisp1/meson.build b/src/libcamera/pipeline/rkisp1/meson.build\nindex cad66535c25f..d21a6ef96bef 100644\n--- a/src/libcamera/pipeline/rkisp1/meson.build\n+++ b/src/libcamera/pipeline/rkisp1/meson.build\n@@ -1,6 +1,6 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'rkisp1.cpp',\n 'rkisp1_path.cpp',\n ])\ndiff --git a/src/libcamera/pipeline/rpi/common/meson.build b/src/libcamera/pipeline/rpi/common/meson.build\nindex 8fb7e823279d..b2b1a0a61284 100644\n--- a/src/libcamera/pipeline/rpi/common/meson.build\n+++ b/src/libcamera/pipeline/rpi/common/meson.build\n@@ -1,6 +1,6 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'delayed_controls.cpp',\n 'pipeline_base.cpp',\n 'rpi_stream.cpp',\ndiff --git a/src/libcamera/pipeline/rpi/vc4/meson.build b/src/libcamera/pipeline/rpi/vc4/meson.build\nindex 386e2296785a..9b37c2f089f2 100644\n--- a/src/libcamera/pipeline/rpi/vc4/meson.build\n+++ b/src/libcamera/pipeline/rpi/vc4/meson.build\n@@ -1,6 +1,6 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'vc4.cpp',\n ])\n \ndiff --git a/src/libcamera/pipeline/simple/meson.build b/src/libcamera/pipeline/simple/meson.build\nindex 42b0896dff8b..dda3de9782e4 100644\n--- a/src/libcamera/pipeline/simple/meson.build\n+++ b/src/libcamera/pipeline/simple/meson.build\n@@ -1,5 +1,5 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'simple.cpp',\n ])\ndiff --git a/src/libcamera/pipeline/uvcvideo/meson.build b/src/libcamera/pipeline/uvcvideo/meson.build\nindex a3c2efd424bf..a3a91074f916 100644\n--- a/src/libcamera/pipeline/uvcvideo/meson.build\n+++ b/src/libcamera/pipeline/uvcvideo/meson.build\n@@ -1,5 +1,5 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'uvcvideo.cpp',\n ])\ndiff --git a/src/libcamera/pipeline/vimc/meson.build b/src/libcamera/pipeline/vimc/meson.build\nindex 290eefb5d076..868e2546a087 100644\n--- a/src/libcamera/pipeline/vimc/meson.build\n+++ b/src/libcamera/pipeline/vimc/meson.build\n@@ -1,5 +1,5 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'vimc.cpp',\n ])\ndiff --git a/src/libcamera/proxy/meson.build b/src/libcamera/proxy/meson.build\nindex 00ae5a8ffa47..d7de518a0549 100644\n--- a/src/libcamera/proxy/meson.build\n+++ b/src/libcamera/proxy/meson.build\n@@ -15,5 +15,5 @@ foreach mojom : ipa_mojoms\n './' + '@INPUT@'\n ])\n \n- libcamera_sources += proxy\n+ libcamera_internal_sources += proxy\n endforeach\ndiff --git a/src/libcamera/sensor/meson.build b/src/libcamera/sensor/meson.build\nindex bf4b131a94b1..61234e950d04 100644\n--- a/src/libcamera/sensor/meson.build\n+++ b/src/libcamera/sensor/meson.build\n@@ -1,6 +1,6 @@\n # SPDX-License-Identifier: CC0-1.0\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'camera_sensor.cpp',\n 'camera_sensor_properties.cpp',\n ])\ndiff --git a/src/libcamera/software_isp/meson.build b/src/libcamera/software_isp/meson.build\nindex f7c66e28f9b9..aac7eda7b5b3 100644\n--- a/src/libcamera/software_isp/meson.build\n+++ b/src/libcamera/software_isp/meson.build\n@@ -7,7 +7,7 @@ if not softisp_enabled\n subdir_done()\n endif\n \n-libcamera_sources += files([\n+libcamera_internal_sources += files([\n 'debayer.cpp',\n 'debayer_cpu.cpp',\n 'software_isp.cpp',\n", "prefixes": [ "v5", "06/18" ] }