Show a patch.

GET /api/1.1/patches/20792/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 20792,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/20792/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/20792/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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/1.1/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/1.1/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"
    ]
}