[{"id":28491,"web_url":"https://patchwork.libcamera.org/comment/28491/","msgid":"<170557326690.3044059.8401726692604695340@ping.linuxembedded.co.uk>","date":"2024-01-18T10:21:06","subject":"Re: [libcamera-devel] [PATCH v3 1/4] meson: libcamera: Split public\n\tand internal source arrays","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Daniel Scally via libcamera-devel (2024-01-12 12:14:31)\n> Meson array variables hold lists of libcamera's source files. To help\n> facilitate the splitting of Doxygen generated documentation into\n> distinct public and internal versions, split those arrays to separate\n> public and internal variables.\n> \n> Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> ---\n> Changes in v3:\n> \n>         - Didn't swap span.h to private array\n>         - dropped _publically from array name\n> \n> Changes in v2:\n> \n>         - New patch\n> \n>  include/libcamera/internal/meson.build | 21 +++++++++++----\n>  src/libcamera/base/meson.build         | 24 +++++++++++------\n>  src/libcamera/meson.build              | 36 ++++++++++++++++----------\n>  3 files changed, 54 insertions(+), 27 deletions(-)\n> \n> diff --git a/include/libcamera/internal/meson.build b/include/libcamera/internal/meson.build\n> index 7f1f3440..4e36bf36 100644\n> --- a/include/libcamera/internal/meson.build\n> +++ b/include/libcamera/internal/meson.build\n> @@ -9,13 +9,21 @@ libcamera_tracepoint_header = custom_target(\n>      command : [gen_tracepoints_header, include_build_dir, '@OUTPUT@', '@INPUT@'],\n>  )\n>  \n> -libcamera_internal_headers = files([\n> +# Where libcamera's public API classes have Extensible::Private counterparts we\n> +# need to include them in doxygen's public API run or it will complain that the\n> +# functions defined in the \"public\" source are undeclared.\n> +libcamera_internal_headers_documented = files([\n> +    'camera.h',\n> +    'camera_manager.h',\n> +    'framebuffer.h',\n> +    'request.h',\n> +])\n\nI guess there's no way to 'exclude' *::private::* namespaces ?\n\nOr Could this be handled by extending\n\nDocumentation/Doxyfile.in:EXCLUDE_SYMBOLS = *::private::*\n\n?\n\nOr I wonder if we should mark Extensible::Private components with\n\n\t/// \\private\n\nhttps://www.doxygen.nl/manual/commands.html#cmdprivate\n\n\n> +\n> +libcamera_internal_headers_undocumented = files([\n>      'bayer_format.h',\n>      'byte_stream_buffer.h',\n> -    'camera.h',\n>      'camera_controls.h',\n>      'camera_lens.h',\n> -    'camera_manager.h',\n>      'camera_sensor.h',\n>      'camera_sensor_properties.h',\n>      'control_serializer.h',\n> @@ -26,7 +34,6 @@ libcamera_internal_headers = files([\n>      'device_enumerator_sysfs.h',\n>      'device_enumerator_udev.h',\n>      'formats.h',\n> -    'framebuffer.h',\n>      'ipa_manager.h',\n>      'ipa_module.h',\n>      'ipa_proxy.h',\n> @@ -37,7 +44,6 @@ libcamera_internal_headers = files([\n>      'pipeline_handler.h',\n>      'process.h',\n>      'pub_key.h',\n> -    'request.h',\n>      'source_paths.h',\n>      'sysfs.h',\n>      'v4l2_device.h',\n> @@ -47,4 +53,9 @@ libcamera_internal_headers = files([\n>      'yaml_parser.h',\n>  ])\n>  \n> +libcamera_internal_headers = [\n> +    libcamera_internal_headers_documented,\n> +    libcamera_internal_headers_undocumented\n> +]\n> +\n>  subdir('converter')\n> diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build\n> index 7a7fd7e4..523c5885 100644\n> --- a/src/libcamera/base/meson.build\n> +++ b/src/libcamera/base/meson.build\n> @@ -1,27 +1,35 @@\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>      '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> +libcamera_base_sources = [\n> +       libcamera_base_public_sources,\n> +       libcamera_base_internal_sources\n> +]\n> +\n>  libdw = dependency('libdw', required : false)\n>  libunwind = dependency('libunwind', required : false)\n>  \n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index 45f63e93..676470c1 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -1,27 +1,35 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> -libcamera_sources = files([\n> +libcamera_public_sources = files([\n> +    'camera.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.cpp',\n>      'camera_controls.cpp',\n>      'camera_lens.cpp',\n> -    'camera_manager.cpp',\n>      'camera_sensor.cpp',\n>      'camera_sensor_properties.cpp',\n> -    'color_space.cpp',\n> -    'controls.cpp',\n>      'control_serializer.cpp',\n>      'control_validator.cpp',\n>      'converter.cpp',\n>      'delayed_controls.cpp',\n>      'device_enumerator.cpp',\n>      'device_enumerator_sysfs.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> @@ -34,16 +42,11 @@ 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>      '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,6 +54,11 @@ libcamera_sources = files([\n>      'yaml_parser.cpp',\n>  ])\n>  \n> +libcamera_sources = [\n> +       libcamera_public_sources,\n> +       libcamera_internal_sources\n> +]\n> +\n>  libcamera_sources += libcamera_public_headers\n>  libcamera_sources += libcamera_generated_ipa_headers\n>  libcamera_sources += libcamera_tracepoint_header\n> -- \n> 2.34.1\n>","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 699D8BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Jan 2024 10:21:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B7B71628B7;\n\tThu, 18 Jan 2024 11:21:10 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9C0F261D48\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Jan 2024 11:21:09 +0100 (CET)","from pendragon.ideasonboard.com\n\t(aztw-30-b2-v4wan-166917-cust845.vm26.cable.virginm.net\n\t[82.37.23.78])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6001F674;\n\tThu, 18 Jan 2024 11:19:59 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1705573270;\n\tbh=C2ThTwbl+L+MD7L06GT0DaDhTKnJrItXt0U7QJvCPuI=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=mkP7N3qB6ITAjmVJ9wViKlVPpBZUAbHHf0Umxn+KnXmgQQ3wcVJEHSi/LTyrGRb1x\n\tabipRntr5xDxm8KTe5idN5OyGkYAQ0jUml/JfUNH2xeh6NsXjzELFPBMb0tbTlJlmF\n\tiEGDHHDvU3R5mhPsqECQz7wWOAZoNVtSZchkCDAyfs/NlXGbZfpWGT6Na9POnl4mKp\n\tESt9aOG53HJVMblrlP6pLeMGogVsdsBGtEMygZDNTu7E+Bol6mlo2sAeNLb9WKMTLe\n\tTEq21/3wroRnhFNERKoZgRdv5pSu+fgj9BBF+lwK9fP3x+f7FkhULb7HfHfUm7GvvL\n\t9PspfN2uQ5Jew==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1705573199;\n\tbh=C2ThTwbl+L+MD7L06GT0DaDhTKnJrItXt0U7QJvCPuI=;\n\th=In-Reply-To:References:Subject:From:To:Date:From;\n\tb=esOuOU9TAK0K1axFvnHvoDZAJjTscv8kqW3iNSSyvAt+Cc3rJ9y6BUwNJ743EymhT\n\tm7BlyIRh57HnVJMLhlquUeIm9mJNoMjrKSF/k1gc/XgEyIwc5cbM1qUT+E/p4M4Tng\n\t6fzODngvAc3uY8K5ZLozPTVlQiTq3611xo1b/SrA="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"esOuOU9T\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20240112121434.529047-2-dan.scally@ideasonboard.com>","References":"<20240112121434.529047-1-dan.scally@ideasonboard.com>\n\t<20240112121434.529047-2-dan.scally@ideasonboard.com>","To":"Daniel Scally <dan.scally@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Thu, 18 Jan 2024 10:21:06 +0000","Message-ID":"<170557326690.3044059.8401726692604695340@ping.linuxembedded.co.uk>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v3 1/4] meson: libcamera: Split public\n\tand internal source arrays","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>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28536,"web_url":"https://patchwork.libcamera.org/comment/28536/","msgid":"<20240122145649.GD12845@pendragon.ideasonboard.com>","date":"2024-01-22T14:56:49","subject":"Re: [libcamera-devel] [PATCH v3 1/4] meson: libcamera: Split public\n\tand internal source arrays","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hello,\n\nOn Thu, Jan 18, 2024 at 10:21:06AM +0000, 📷-devel wrote:\n> Quoting Daniel Scally via libcamera-devel (2024-01-12 12:14:31)\n> > Meson array variables hold lists of libcamera's source files. To help\n> > facilitate the splitting of Doxygen generated documentation into\n> > distinct public and internal versions, split those arrays to separate\n> > public and internal variables.\n> > \n> > Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>\n> > ---\n> > Changes in v3:\n> > \n> >         - Didn't swap span.h to private array\n> >         - dropped _publically from array name\n> > \n> > Changes in v2:\n> > \n> >         - New patch\n> > \n> >  include/libcamera/internal/meson.build | 21 +++++++++++----\n> >  src/libcamera/base/meson.build         | 24 +++++++++++------\n> >  src/libcamera/meson.build              | 36 ++++++++++++++++----------\n> >  3 files changed, 54 insertions(+), 27 deletions(-)\n> > \n> > diff --git a/include/libcamera/internal/meson.build b/include/libcamera/internal/meson.build\n> > index 7f1f3440..4e36bf36 100644\n> > --- a/include/libcamera/internal/meson.build\n> > +++ b/include/libcamera/internal/meson.build\n> > @@ -9,13 +9,21 @@ libcamera_tracepoint_header = custom_target(\n> >      command : [gen_tracepoints_header, include_build_dir, '@OUTPUT@', '@INPUT@'],\n> >  )\n> >  \n> > -libcamera_internal_headers = files([\n> > +# Where libcamera's public API classes have Extensible::Private counterparts we\n> > +# need to include them in doxygen's public API run or it will complain that the\n> > +# functions defined in the \"public\" source are undeclared.\n> > +libcamera_internal_headers_documented = files([\n> > +    'camera.h',\n> > +    'camera_manager.h',\n> > +    'framebuffer.h',\n> > +    'request.h',\n> > +])\n> \n> I guess there's no way to 'exclude' *::private::* namespaces ?\n\nIt's not a namespace, it's a nested class declaration (and it's Private,\nnot private).\n\n> \n> Or Could this be handled by extending\n> \n> Documentation/Doxyfile.in:EXCLUDE_SYMBOLS = *::private::*\n> \n> ?\n\nThis may be possible, depending on what we want to achieve. I'm not sure\nyet why we need to split these in \"documented\" and \"undocumented\" parts,\nI suppose I'll figure that out when reviewing the other patches in this\nseries.\n\n> Or I wonder if we should mark Extensible::Private components with\n> \n> \t/// \\private\n> \n> https://www.doxygen.nl/manual/commands.html#cmdprivate\n\nExtensible::Private really means internal, not private in the C++ sense.\nThose classes and their (public) member functions need to be documented,\nas they're part of the internal API.\n\n> > +\n> > +libcamera_internal_headers_undocumented = files([\n> >      'bayer_format.h',\n> >      'byte_stream_buffer.h',\n> > -    'camera.h',\n> >      'camera_controls.h',\n> >      'camera_lens.h',\n> > -    'camera_manager.h',\n> >      'camera_sensor.h',\n> >      'camera_sensor_properties.h',\n> >      'control_serializer.h',\n> > @@ -26,7 +34,6 @@ libcamera_internal_headers = files([\n> >      'device_enumerator_sysfs.h',\n> >      'device_enumerator_udev.h',\n> >      'formats.h',\n> > -    'framebuffer.h',\n> >      'ipa_manager.h',\n> >      'ipa_module.h',\n> >      'ipa_proxy.h',\n> > @@ -37,7 +44,6 @@ libcamera_internal_headers = files([\n> >      'pipeline_handler.h',\n> >      'process.h',\n> >      'pub_key.h',\n> > -    'request.h',\n> >      'source_paths.h',\n> >      'sysfs.h',\n> >      'v4l2_device.h',\n> > @@ -47,4 +53,9 @@ libcamera_internal_headers = files([\n> >      'yaml_parser.h',\n> >  ])\n> >  \n> > +libcamera_internal_headers = [\n> > +    libcamera_internal_headers_documented,\n> > +    libcamera_internal_headers_undocumented\n\ns/$/,/\n\nThe split looks good, with this small issue fixed (and assuming we need\nthis particular split, I haven't read patches 2/4 to 4/4 yet),\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> > +]\n> > +\n> >  subdir('converter')\n> > diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build\n> > index 7a7fd7e4..523c5885 100644\n> > --- a/src/libcamera/base/meson.build\n> > +++ b/src/libcamera/base/meson.build\n> > @@ -1,27 +1,35 @@\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> >      '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> > +libcamera_base_sources = [\n> > +       libcamera_base_public_sources,\n> > +       libcamera_base_internal_sources\n> > +]\n> > +\n> >  libdw = dependency('libdw', required : false)\n> >  libunwind = dependency('libunwind', required : false)\n> >  \n> > diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> > index 45f63e93..676470c1 100644\n> > --- a/src/libcamera/meson.build\n> > +++ b/src/libcamera/meson.build\n> > @@ -1,27 +1,35 @@\n> >  # SPDX-License-Identifier: CC0-1.0\n> >  \n> > -libcamera_sources = files([\n> > +libcamera_public_sources = files([\n> > +    'camera.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.cpp',\n> >      'camera_controls.cpp',\n> >      'camera_lens.cpp',\n> > -    'camera_manager.cpp',\n> >      'camera_sensor.cpp',\n> >      'camera_sensor_properties.cpp',\n> > -    'color_space.cpp',\n> > -    'controls.cpp',\n> >      'control_serializer.cpp',\n> >      'control_validator.cpp',\n> >      'converter.cpp',\n> >      'delayed_controls.cpp',\n> >      'device_enumerator.cpp',\n> >      'device_enumerator_sysfs.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> > @@ -34,16 +42,11 @@ 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> >      '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,6 +54,11 @@ libcamera_sources = files([\n> >      'yaml_parser.cpp',\n> >  ])\n> >  \n> > +libcamera_sources = [\n> > +       libcamera_public_sources,\n> > +       libcamera_internal_sources\n> > +]\n> > +\n> >  libcamera_sources += libcamera_public_headers\n> >  libcamera_sources += libcamera_generated_ipa_headers\n> >  libcamera_sources += libcamera_tracepoint_header","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 09ECCC323E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 22 Jan 2024 14:56:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7043B6291F;\n\tMon, 22 Jan 2024 15:56:47 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3309F61D30\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 22 Jan 2024 15:56:46 +0100 (CET)","from pendragon.ideasonboard.com (89-27-53-110.bb.dnainternet.fi\n\t[89.27.53.110])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D52F411B4;\n\tMon, 22 Jan 2024 15:55:32 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"NYpXdSm3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1705935333;\n\tbh=3W43Vf18FNoczi7I4uHZr+gxJ4UyTaAjY/QpasHdCNU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=NYpXdSm3piLn9Z3mrb6I9HWBpY8LTaw9Xu+hjeX/Jtfe2dLZFUpqhx/25MEcgcIwo\n\tWVNjwO2gTh0OHIL2aoFZ35Tx6BdSmq31RM71l3RkB+ZPb4vdGduJjazUDo/4gxwrmG\n\tmOOiICpl5KguBTb+aAQDBysNFISx4A/HJ2yY1qzs=","Date":"Mon, 22 Jan 2024 16:56:49 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 1/4] meson: libcamera: Split public\n\tand internal source arrays","Message-ID":"<20240122145649.GD12845@pendragon.ideasonboard.com>","References":"<20240112121434.529047-1-dan.scally@ideasonboard.com>\n\t<20240112121434.529047-2-dan.scally@ideasonboard.com>\n\t<170557326690.3044059.8401726692604695340@ping.linuxembedded.co.uk>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","Content-Transfer-Encoding":"8bit","In-Reply-To":"<170557326690.3044059.8401726692604695340@ping.linuxembedded.co.uk>","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>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]