Show a patch.

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

{
    "id": 20856,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/20856/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/20856/",
    "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": "<20240809005914.20662-7-laurent.pinchart@ideasonboard.com>",
    "date": "2024-08-09T00:59:10",
    "name": "[06/10] utils: codegen: gen-header.sh: Generate libcamera.h based on meson.build",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "b686b9d8307cead0555ab5b3a4956bfe8b838bc0",
    "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/20856/mbox/",
    "series": [
        {
            "id": 4506,
            "url": "https://patchwork.libcamera.org/api/1.1/series/4506/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4506",
            "date": "2024-08-09T00:59:04",
            "name": "libcamera: Improve code generation for controls",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/4506/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/20856/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/20856/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 36765BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  9 Aug 2024 00:59:53 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CD74A633C1;\n\tFri,  9 Aug 2024 02:59:52 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CCE38633BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  9 Aug 2024 02:59:47 +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 CF93E83F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  9 Aug 2024 02:58:53 +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=\"mT/AcNKw\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1723165134;\n\tbh=9MzqF6BTpYdwHomjvD1Dc0CQb9pfsvcCpV6mhVdvlew=;\n\th=From:To:Subject:Date:In-Reply-To:References:From;\n\tb=mT/AcNKwUdA7sxvD1iCb4HWFUx1KFr19Aq8rAkWQIyGLocLlTmlp9zemfc//5C6ff\n\tTzcstxi5N8y7ObSwKt8pnE95w+cyRo8kuR5CfQAR1THMuJD+YXAWmKMIfu48pPfmnU\n\ts4TIO+YSAHvlpWkFi3/UWgQvUVmQgeZRBbKg4wmI=",
        "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Subject": "[PATCH 06/10] utils: codegen: gen-header.sh: Generate libcamera.h\n\tbased on meson.build",
        "Date": "Fri,  9 Aug 2024 03:59:10 +0300",
        "Message-ID": "<20240809005914.20662-7-laurent.pinchart@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.44.2",
        "In-Reply-To": "<20240809005914.20662-1-laurent.pinchart@ideasonboard.com>",
        "References": "<20240809005914.20662-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": "The libcamera.h header is a top-level library header that contains every\nother libcamera header. It is currently generated by listing the files\nin include/libcamera/ and dropping the .in suffix from template files.\nThis assumes a 1:1 mapping between generate header file names and the\nname of their templates.\n\nDrop that assumption and make the libcamera.h generation based on the\nlibcamera public headers listed in meson.build. This makes the\nlibcamera.h header generation more future-proof.\n\nSigned-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n include/libcamera/meson.build | 20 ++++++++++----------\n utils/codegen/gen-header.sh   |  7 +++----\n 2 files changed, 13 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\nindex 36de1c2a393c..87b9a9412fe7 100644\n--- a/include/libcamera/meson.build\n+++ b/include/libcamera/meson.build\n@@ -107,16 +107,6 @@ formats_h = custom_target('formats_h',\n                           install_dir : libcamera_headers_install_dir)\n libcamera_public_headers += formats_h\n \n-# libcamera.h\n-libcamera_h = custom_target('gen-header',\n-                            input : 'meson.build',\n-                            output : 'libcamera.h',\n-                            command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n-                            install : true,\n-                            install_dir : libcamera_headers_install_dir)\n-\n-libcamera_public_headers += libcamera_h\n-\n # version.h\n version = libcamera_version.split('.')\n libcamera_version_config = configuration_data()\n@@ -129,3 +119,13 @@ version_h = configure_file(input : 'version.h.in',\n                            configuration : libcamera_version_config,\n                            install_dir : libcamera_headers_install_dir)\n libcamera_public_headers += version_h\n+\n+# libcamera.h\n+libcamera_h = custom_target('gen-header',\n+                            input : 'meson.build',\n+                            output : 'libcamera.h',\n+                            command : [gen_header, '@OUTPUT@', libcamera_public_headers],\n+                            install : true,\n+                            install_dir : libcamera_headers_install_dir)\n+\n+libcamera_public_headers += libcamera_h\ndiff --git a/utils/codegen/gen-header.sh b/utils/codegen/gen-header.sh\nindex d4692758eeb4..c78f085992ef 100755\n--- a/utils/codegen/gen-header.sh\n+++ b/utils/codegen/gen-header.sh\n@@ -1,7 +1,7 @@\n #!/bin/sh\n \n-src_dir=\"$1\"\n-dst_file=\"$2\"\n+dst_file=\"$1\"\n+shift\n \n cat <<EOF > \"$dst_file\"\n /* SPDX-License-Identifier: LGPL-2.1-or-later */\n@@ -16,9 +16,8 @@ cat <<EOF > \"$dst_file\"\n \n EOF\n \n-headers=$(for header in \"$src_dir\"/*.h \"$src_dir\"/*.h.in ; do\n+headers=$(for header in \"$@\" ; do\n \theader=$(basename \"$header\")\n-\theader=\"${header%.in}\"\n \techo \"$header\"\n done | sort)\n \n",
    "prefixes": [
        "06/10"
    ]
}