Show a patch.

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

{
    "id": 26302,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/26302/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/26302/",
    "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": "<20260323074900.1313596-1-barnabas.pocze@ideasonboard.com>",
    "date": "2026-03-23T07:49:00",
    "name": "[v2] meson: Add options to control drm, sdl2, jpeg dependencies of `cam`",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "609a2f1c7347edfd6d038b6dad94722dada60603",
    "submitter": {
        "id": 216,
        "url": "https://patchwork.libcamera.org/api/1.1/people/216/?format=api",
        "name": "Barnabás Pőcze",
        "email": "barnabas.pocze@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/26302/mbox/",
    "series": [
        {
            "id": 5834,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5834/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5834",
            "date": "2026-03-23T07:49:00",
            "name": "[v2] meson: Add options to control drm, sdl2, jpeg dependencies of `cam`",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/5834/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/26302/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/26302/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 D4991BE086\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Mar 2026 07:49:05 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DC48A62739;\n\tMon, 23 Mar 2026 08:49:04 +0100 (CET)",
            "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 89E506271A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Mar 2026 08:49:03 +0100 (CET)",
            "from pb-laptop.local (185.221.143.129.nat.pool.zt.hu\n\t[185.221.143.129])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1C7EB591;\n\tMon, 23 Mar 2026 08:47:47 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"HbjrcC0E\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1774252067;\n\tbh=bcVr4gVm9TYNJfMBNfn9qATKmbTRjAviU55mWcxyXOE=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=HbjrcC0EY5Ke7Lm9QXOWqZfFfxK6p7n60Xt1L+IcXXbAFk27+1ehKPGZ3i4RHe+40\n\tgLuqno+Dw85TZFJ6pdeKg3SvRySKVP3vLawf70k/juf1A8tGKq+yt8JllHjClspN3/\n\tss4FiEO1zU3IGMBQQt2JeDg9zojUBNnthamcx3tk=",
        "From": "=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Milan Zamazal <mzamazal@redhat.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "Subject": "[PATCH v2] meson: Add options to control drm, sdl2,\n\tjpeg dependencies of `cam`",
        "Date": "Mon, 23 Mar 2026 08:49:00 +0100",
        "Message-ID": "<20260323074900.1313596-1-barnabas.pocze@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "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": "Previously it was not possible to control these dependencies, they were\nalways used if found. Furthermore, libjpeg was unnecessarily added as a\ndependency even if sdl2 was not found. Fix that by introducing three\noptions to control the dependencies.\n\nSigned-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\nReviewed-by: Milan Zamazal <mzamazal@redhat.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\nchanges in v2:\n  * rename option from `cam-output-sdl2-jpeg` to `cam-jpeg`\n\nv1: https://patchwork.libcamera.org/patch/26055/\n---\n meson_options.txt        | 15 +++++++++++++++\n src/apps/cam/meson.build | 36 ++++++++++++++++++++++--------------\n 2 files changed, 37 insertions(+), 14 deletions(-)\n\n--\n2.53.0",
    "diff": "diff --git a/meson_options.txt b/meson_options.txt\nindex c27e377ad..8bf6c2bd5 100644\n--- a/meson_options.txt\n+++ b/meson_options.txt\n@@ -16,6 +16,21 @@ option('cam',\n         value : 'auto',\n         description : 'Compile the cam test application')\n\n+option('cam-output-kms',\n+        type : 'feature',\n+        value : 'auto',\n+        description : 'Enable KMS output in the cam application')\n+\n+option('cam-output-sdl2',\n+        type : 'feature',\n+        value : 'auto',\n+        description : 'Enable SDL2 output in the cam application')\n+\n+option('cam-jpeg',\n+        type : 'feature',\n+        value : 'auto',\n+        description : 'Enable JPEG support in the cam application')\n+\n option('documentation',\n         type : 'feature',\n         value : 'auto',\ndiff --git a/src/apps/cam/meson.build b/src/apps/cam/meson.build\nindex cd7f120f9..0fd846270 100644\n--- a/src/apps/cam/meson.build\n+++ b/src/apps/cam/meson.build\n@@ -17,9 +17,18 @@ cam_sources = files([\n\n cam_cpp_args = [apps_cpp_args]\n\n-libdrm = dependency('libdrm', required : false)\n-libjpeg = dependency('libjpeg', required : false)\n-libsdl2 = dependency('SDL2', required : false)\n+cam_deps = [\n+    libatomic,\n+    libcamera_public,\n+    libevent,\n+    libthreads,\n+    libyaml,\n+    libtiff,\n+]\n+\n+libdrm = dependency('libdrm', required : get_option('cam-output-kms'))\n+libsdl2 = dependency('SDL2', required : get_option('cam-output-sdl2'))\n+libjpeg = dependency('libjpeg', required : get_option('cam-jpeg'))\n\n if libdrm.found()\n     cam_cpp_args += [ '-DHAVE_KMS' ]\n@@ -27,6 +36,9 @@ if libdrm.found()\n         'drm.cpp',\n         'kms_sink.cpp'\n     ])\n+    cam_deps += [\n+        libdrm,\n+    ]\n endif\n\n if libsdl2.found()\n@@ -37,28 +49,24 @@ if libsdl2.found()\n         'sdl_texture_1plane.cpp',\n         'sdl_texture_yuv.cpp',\n     ])\n+    cam_deps += [\n+        libsdl2,\n+    ]\n\n     if libjpeg.found()\n         cam_cpp_args += ['-DHAVE_LIBJPEG']\n         cam_sources += files([\n             'sdl_texture_mjpg.cpp'\n         ])\n+        cam_deps += [\n+            libjpeg,\n+        ]\n     endif\n endif\n\n cam  = executable('cam', cam_sources,\n                   link_with : apps_lib,\n-                  dependencies : [\n-                      libatomic,\n-                      libcamera_public,\n-                      libdrm,\n-                      libevent,\n-                      libjpeg,\n-                      libsdl2,\n-                      libtiff,\n-                      libthreads,\n-                      libyaml,\n-                  ],\n+                  dependencies : cam_deps,\n                   cpp_args : cam_cpp_args,\n                   install : true,\n                   install_tag : 'bin')\n",
    "prefixes": [
        "v2"
    ]
}