[{"id":19862,"web_url":"https://patchwork.libcamera.org/comment/19862/","msgid":"<20210927064605.GC4382@pyrite.rasen.tech>","date":"2021-09-27T06:46:05","subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Laurent,\n\nOn Sun, Sep 26, 2021 at 07:45:53PM +0300, Laurent Pinchart wrote:\n> All libcamera headers are meant to be installed in\n> ${prefix}/include/libcamera/libcamera, with pkgconfig specifying the\n> include directory as `-I ${prefix}/include/libcamera`. Applications then\n> include the headers with `#include <libcamera/camera.h>`.\n> \n> The base and ipa headers are meant to be installed in subdirectories of\n> the libcamera headers directory, but are mistakenly installed one level\n> too high, in ${prefix}/include/libcamera. This leads to compilation\n> failures when including the base or ipa header.\n> \n> Fix this by setting the meson libcamera_include_dir variable to the\n> libcamera headers directory. All other header paths are derived from\n> that variable and are now correct.\n> \n> Reported-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>\n> Bug: https://bugs.libcamera.org/show_bug.cgi?id=79\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  include/libcamera/meson.build | 14 +++++++-------\n>  include/meson.build           |  2 --\n>  2 files changed, 7 insertions(+), 9 deletions(-)\n> \n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 5b25ef847ed4..567782a66ba3 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -1,5 +1,7 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> +libcamera_include_dir = 'libcamera' / 'libcamera'\n> +\n>  libcamera_public_headers = files([\n>      'camera.h',\n>      'camera_manager.h',\n> @@ -16,14 +18,12 @@ libcamera_public_headers = files([\n>      'transform.h',\n>  ])\n>  \n> -include_dir = libcamera_include_dir / 'libcamera'\n\nAm I missing something here?\n\nThe old version has libcamera_include_dir = 'libcamera', so the subdir\nthat we feed below is 'libcamera' / 'libcamera'.\n\nThe new version has 'libcamera' / 'libcamera' directly, so it seems to\nme nothing has changed?\n\n\nPaul\n\n> -\n>  subdir('base')\n>  subdir('internal')\n>  subdir('ipa')\n>  \n>  install_headers(libcamera_public_headers,\n> -                subdir : include_dir)\n> +                subdir : libcamera_include_dir)\n>  \n>  #\n>  # Generate headers from templates.\n> @@ -44,7 +44,7 @@ foreach header : control_source_files\n>                                       output : header + '.h',\n>                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n>                                       install : true,\n> -                                     install_dir : get_option('includedir') / include_dir)\n> +                                     install_dir : get_option('includedir') / libcamera_include_dir)\n>  endforeach\n>  \n>  libcamera_public_headers += control_headers\n> @@ -59,7 +59,7 @@ formats_h = custom_target('formats_h',\n>                            output : 'formats.h',\n>                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n>                            install : true,\n> -                          install_dir : get_option('includedir') / include_dir)\n> +                          install_dir : get_option('includedir') / libcamera_include_dir)\n>  libcamera_public_headers += formats_h\n>  \n>  # libcamera.h\n> @@ -68,7 +68,7 @@ libcamera_h = custom_target('gen-header',\n>                              output : 'libcamera.h',\n>                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n>                              install : true,\n> -                            install_dir : get_option('includedir') / include_dir)\n> +                            install_dir : get_option('includedir') / libcamera_include_dir)\n>  \n>  libcamera_public_headers += libcamera_h\n>  \n> @@ -82,4 +82,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n>  configure_file(input : 'version.h.in',\n>                 output : 'version.h',\n>                 configuration : libcamera_version_config,\n> -               install_dir : get_option('includedir') / include_dir)\n> +               install_dir : get_option('includedir') / libcamera_include_dir)\n> diff --git a/include/meson.build b/include/meson.build\n> index 2ac9a3a049f2..27ce2f41c534 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,6 +1,4 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> -libcamera_include_dir = 'libcamera'\n> -\n>  subdir('android')\n>  subdir('libcamera')\n> -- \n> Regards,\n> \n> Laurent Pinchart\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 ED87FBDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Sep 2021 06:46:15 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3D80F6918E;\n\tMon, 27 Sep 2021 08:46:15 +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 6A4C9684C8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Sep 2021 08:46:14 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 85E16B91;\n\tMon, 27 Sep 2021 08:46:12 +0200 (CEST)"],"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=\"VhVxnC8+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632725174;\n\tbh=4Gbt+SeITReeX/Bn2CSp5X1JTSXpLqSkoUozwrFYLqM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=VhVxnC8+QVd5gSKrKPfLyakhcRZskr3IeYAzKsMWWkx0FIRgxqb5H1BMGpO6Kf9lo\n\tmAwrgadxyhCOvRU3A9tgwhq5C1jNdnm0RIlWP2pmAAITg48aatRttZXFca+nJs+AT6\n\tg5tNxkiqk5kZdibHyQHCwnKeXsb60VSGnlgl14Lk=","Date":"Mon, 27 Sep 2021 15:46:05 +0900","From":"paul.elder@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210927064605.GC4382@pyrite.rasen.tech>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-2-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20210926164554.19325-2-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19890,"web_url":"https://patchwork.libcamera.org/comment/19890/","msgid":"<YVHmQjnfTYIFQ76+@pendragon.ideasonboard.com>","date":"2021-09-27T15:41:54","subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Paul,\n\nOn Mon, Sep 27, 2021 at 03:46:05PM +0900, paul.elder@ideasonboard.com wrote:\n> On Sun, Sep 26, 2021 at 07:45:53PM +0300, Laurent Pinchart wrote:\n> > All libcamera headers are meant to be installed in\n> > ${prefix}/include/libcamera/libcamera, with pkgconfig specifying the\n> > include directory as `-I ${prefix}/include/libcamera`. Applications then\n> > include the headers with `#include <libcamera/camera.h>`.\n> > \n> > The base and ipa headers are meant to be installed in subdirectories of\n> > the libcamera headers directory, but are mistakenly installed one level\n> > too high, in ${prefix}/include/libcamera. This leads to compilation\n> > failures when including the base or ipa header.\n> > \n> > Fix this by setting the meson libcamera_include_dir variable to the\n> > libcamera headers directory. All other header paths are derived from\n> > that variable and are now correct.\n> > \n> > Reported-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>\n> > Bug: https://bugs.libcamera.org/show_bug.cgi?id=79\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  include/libcamera/meson.build | 14 +++++++-------\n> >  include/meson.build           |  2 --\n> >  2 files changed, 7 insertions(+), 9 deletions(-)\n> > \n> > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> > index 5b25ef847ed4..567782a66ba3 100644\n> > --- a/include/libcamera/meson.build\n> > +++ b/include/libcamera/meson.build\n> > @@ -1,5 +1,7 @@\n> >  # SPDX-License-Identifier: CC0-1.0\n> >  \n> > +libcamera_include_dir = 'libcamera' / 'libcamera'\n> > +\n> >  libcamera_public_headers = files([\n> >      'camera.h',\n> >      'camera_manager.h',\n> > @@ -16,14 +18,12 @@ libcamera_public_headers = files([\n> >      'transform.h',\n> >  ])\n> >  \n> > -include_dir = libcamera_include_dir / 'libcamera'\n> \n> Am I missing something here?\n> \n> The old version has libcamera_include_dir = 'libcamera', so the subdir\n> that we feed below is 'libcamera' / 'libcamera'.\n> \n> The new version has 'libcamera' / 'libcamera' directly, so it seems to\n> me nothing has changed?\n\nIn include/libcamera/, indeed, but the base/ and ipa/ subdirectories use\nthe libcamera_include_dir variable, which is now 'libcamera/libcamera'\nwhen it was just 'libcamera'.\n\n> > -\n> >  subdir('base')\n> >  subdir('internal')\n> >  subdir('ipa')\n> >  \n> >  install_headers(libcamera_public_headers,\n> > -                subdir : include_dir)\n> > +                subdir : libcamera_include_dir)\n> >  \n> >  #\n> >  # Generate headers from templates.\n> > @@ -44,7 +44,7 @@ foreach header : control_source_files\n> >                                       output : header + '.h',\n> >                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n> >                                       install : true,\n> > -                                     install_dir : get_option('includedir') / include_dir)\n> > +                                     install_dir : get_option('includedir') / libcamera_include_dir)\n> >  endforeach\n> >  \n> >  libcamera_public_headers += control_headers\n> > @@ -59,7 +59,7 @@ formats_h = custom_target('formats_h',\n> >                            output : 'formats.h',\n> >                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n> >                            install : true,\n> > -                          install_dir : get_option('includedir') / include_dir)\n> > +                          install_dir : get_option('includedir') / libcamera_include_dir)\n> >  libcamera_public_headers += formats_h\n> >  \n> >  # libcamera.h\n> > @@ -68,7 +68,7 @@ libcamera_h = custom_target('gen-header',\n> >                              output : 'libcamera.h',\n> >                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n> >                              install : true,\n> > -                            install_dir : get_option('includedir') / include_dir)\n> > +                            install_dir : get_option('includedir') / libcamera_include_dir)\n> >  \n> >  libcamera_public_headers += libcamera_h\n> >  \n> > @@ -82,4 +82,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n> >  configure_file(input : 'version.h.in',\n> >                 output : 'version.h',\n> >                 configuration : libcamera_version_config,\n> > -               install_dir : get_option('includedir') / include_dir)\n> > +               install_dir : get_option('includedir') / libcamera_include_dir)\n> > diff --git a/include/meson.build b/include/meson.build\n> > index 2ac9a3a049f2..27ce2f41c534 100644\n> > --- a/include/meson.build\n> > +++ b/include/meson.build\n> > @@ -1,6 +1,4 @@\n> >  # SPDX-License-Identifier: CC0-1.0\n> >  \n> > -libcamera_include_dir = 'libcamera'\n> > -\n> >  subdir('android')\n> >  subdir('libcamera')","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 C1D63C3243\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 27 Sep 2021 15:42:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 49CAC6012C;\n\tMon, 27 Sep 2021 17:42:02 +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 0EEB46012C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 27 Sep 2021 17:42:01 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 75BA7B91;\n\tMon, 27 Sep 2021 17:42:00 +0200 (CEST)"],"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=\"qZ6v20XD\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632757320;\n\tbh=MkH0j+d9f7GUb1oZM8Yxus6DjWdLwNyOGQcoPyThg6w=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=qZ6v20XDidIHwBaYQQkGkBs+kIfg06xcuEbbFxcs0JkyVbJYUySd3rym2xMxSChkG\n\tKyGaWiJ8SmTJj69fLZ36sYMhEj+YbT1dmavx6l3nJbBgE8Ko35vLq0WxtPGAHCKtdf\n\t7g8RjUjpGaavWbx8DB/R1f1006lfSnOahB/PFnnQ=","Date":"Mon, 27 Sep 2021 18:41:54 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"paul.elder@ideasonboard.com","Message-ID":"<YVHmQjnfTYIFQ76+@pendragon.ideasonboard.com>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-2-laurent.pinchart@ideasonboard.com>\n\t<20210927064605.GC4382@pyrite.rasen.tech>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210927064605.GC4382@pyrite.rasen.tech>","Subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19907,"web_url":"https://patchwork.libcamera.org/comment/19907/","msgid":"<20210928014226.GI4382@pyrite.rasen.tech>","date":"2021-09-28T01:42:26","subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Laurent,\n\nOn Mon, Sep 27, 2021 at 06:41:54PM +0300, Laurent Pinchart wrote:\n> Hi Paul,\n> \n> On Mon, Sep 27, 2021 at 03:46:05PM +0900, paul.elder@ideasonboard.com wrote:\n> > On Sun, Sep 26, 2021 at 07:45:53PM +0300, Laurent Pinchart wrote:\n> > > All libcamera headers are meant to be installed in\n> > > ${prefix}/include/libcamera/libcamera, with pkgconfig specifying the\n> > > include directory as `-I ${prefix}/include/libcamera`. Applications then\n> > > include the headers with `#include <libcamera/camera.h>`.\n> > > \n> > > The base and ipa headers are meant to be installed in subdirectories of\n> > > the libcamera headers directory, but are mistakenly installed one level\n> > > too high, in ${prefix}/include/libcamera. This leads to compilation\n> > > failures when including the base or ipa header.\n> > > \n> > > Fix this by setting the meson libcamera_include_dir variable to the\n> > > libcamera headers directory. All other header paths are derived from\n> > > that variable and are now correct.\n> > > \n> > > Reported-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>\n> > > Bug: https://bugs.libcamera.org/show_bug.cgi?id=79\n> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > ---\n> > >  include/libcamera/meson.build | 14 +++++++-------\n> > >  include/meson.build           |  2 --\n> > >  2 files changed, 7 insertions(+), 9 deletions(-)\n> > > \n> > > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> > > index 5b25ef847ed4..567782a66ba3 100644\n> > > --- a/include/libcamera/meson.build\n> > > +++ b/include/libcamera/meson.build\n> > > @@ -1,5 +1,7 @@\n> > >  # SPDX-License-Identifier: CC0-1.0\n> > >  \n> > > +libcamera_include_dir = 'libcamera' / 'libcamera'\n> > > +\n> > >  libcamera_public_headers = files([\n> > >      'camera.h',\n> > >      'camera_manager.h',\n> > > @@ -16,14 +18,12 @@ libcamera_public_headers = files([\n> > >      'transform.h',\n> > >  ])\n> > >  \n> > > -include_dir = libcamera_include_dir / 'libcamera'\n> > \n> > Am I missing something here?\n> > \n> > The old version has libcamera_include_dir = 'libcamera', so the subdir\n> > that we feed below is 'libcamera' / 'libcamera'.\n> > \n> > The new version has 'libcamera' / 'libcamera' directly, so it seems to\n> > me nothing has changed?\n> \n> In include/libcamera/, indeed, but the base/ and ipa/ subdirectories use\n> the libcamera_include_dir variable, which is now 'libcamera/libcamera'\n> when it was just 'libcamera'.\n\nAh, I see. Thanks for the clarification.\n\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> \n> > > -\n> > >  subdir('base')\n> > >  subdir('internal')\n> > >  subdir('ipa')\n> > >  \n> > >  install_headers(libcamera_public_headers,\n> > > -                subdir : include_dir)\n> > > +                subdir : libcamera_include_dir)\n> > >  \n> > >  #\n> > >  # Generate headers from templates.\n> > > @@ -44,7 +44,7 @@ foreach header : control_source_files\n> > >                                       output : header + '.h',\n> > >                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n> > >                                       install : true,\n> > > -                                     install_dir : get_option('includedir') / include_dir)\n> > > +                                     install_dir : get_option('includedir') / libcamera_include_dir)\n> > >  endforeach\n> > >  \n> > >  libcamera_public_headers += control_headers\n> > > @@ -59,7 +59,7 @@ formats_h = custom_target('formats_h',\n> > >                            output : 'formats.h',\n> > >                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n> > >                            install : true,\n> > > -                          install_dir : get_option('includedir') / include_dir)\n> > > +                          install_dir : get_option('includedir') / libcamera_include_dir)\n> > >  libcamera_public_headers += formats_h\n> > >  \n> > >  # libcamera.h\n> > > @@ -68,7 +68,7 @@ libcamera_h = custom_target('gen-header',\n> > >                              output : 'libcamera.h',\n> > >                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n> > >                              install : true,\n> > > -                            install_dir : get_option('includedir') / include_dir)\n> > > +                            install_dir : get_option('includedir') / libcamera_include_dir)\n> > >  \n> > >  libcamera_public_headers += libcamera_h\n> > >  \n> > > @@ -82,4 +82,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n> > >  configure_file(input : 'version.h.in',\n> > >                 output : 'version.h',\n> > >                 configuration : libcamera_version_config,\n> > > -               install_dir : get_option('includedir') / include_dir)\n> > > +               install_dir : get_option('includedir') / libcamera_include_dir)\n> > > diff --git a/include/meson.build b/include/meson.build\n> > > index 2ac9a3a049f2..27ce2f41c534 100644\n> > > --- a/include/meson.build\n> > > +++ b/include/meson.build\n> > > @@ -1,6 +1,4 @@\n> > >  # SPDX-License-Identifier: CC0-1.0\n> > >  \n> > > -libcamera_include_dir = 'libcamera'\n> > > -\n> > >  subdir('android')\n> > >  subdir('libcamera')\n> \n> -- \n> Regards,\n> \n> Laurent Pinchart","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 19F99BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 28 Sep 2021 01:42:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5949E6918B;\n\tTue, 28 Sep 2021 03:42:34 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9EB4C6012D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 28 Sep 2021 03:42:33 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C38DD3F1;\n\tTue, 28 Sep 2021 03:42:31 +0200 (CEST)"],"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=\"TNF+fu6M\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632793353;\n\tbh=iqeVcyhVZBfhGKE/ZOAZgmAyT2hOpS7Jj/cG70B7Qx4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=TNF+fu6MmKFaMvFtaffCZ5BqJjmyuW/LsIpKJ23ZGnVVMBcKUMWexS1sK1YgZHj3Y\n\t1ZmMK3l6VKk3Mu5BJiy0uFuzcdkdq2GYABpCvmdEHCb90OfxSDYLoDR/0IofmvSRSU\n\teFbEUoqktWI+OcGwcziRH24UiQP/RbHHphgaGxh0=","Date":"Tue, 28 Sep 2021 10:42:26 +0900","From":"paul.elder@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210928014226.GI4382@pyrite.rasen.tech>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-2-laurent.pinchart@ideasonboard.com>\n\t<20210927064605.GC4382@pyrite.rasen.tech>\n\t<YVHmQjnfTYIFQ76+@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<YVHmQjnfTYIFQ76+@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19942,"web_url":"https://patchwork.libcamera.org/comment/19942/","msgid":"<20210928164757.vkcrli35bthxayrk@ideasonboard.com>","date":"2021-09-28T16:47:57","subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"On Sun, Sep 26, 2021 at 07:45:53PM +0300, Laurent Pinchart wrote:\n> All libcamera headers are meant to be installed in\n> ${prefix}/include/libcamera/libcamera, with pkgconfig specifying the\n\n\nThe 'first' libcamera here is supposed to be the overall package, and we\ncould perhaps envision being versioned if necessary later right?\n\nWhile the second libcamera is of course the 'libcamera' part.\n\nI think originally my aim was to have that first component out as a\nvariable as it could be expected to change.\n\nhowever, this fixes things up for now - and so I don't mind it being\nhardcoded (in a better way than before).\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> include directory as `-I ${prefix}/include/libcamera`. Applications then\n> include the headers with `#include <libcamera/camera.h>`.\n> \n> The base and ipa headers are meant to be installed in subdirectories of\n> the libcamera headers directory, but are mistakenly installed one level\n> too high, in ${prefix}/include/libcamera. This leads to compilation\n> failures when including the base or ipa header.\n> \n> Fix this by setting the meson libcamera_include_dir variable to the\n> libcamera headers directory. All other header paths are derived from\n> that variable and are now correct.\n> \n> Reported-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>\n> Bug: https://bugs.libcamera.org/show_bug.cgi?id=79\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  include/libcamera/meson.build | 14 +++++++-------\n>  include/meson.build           |  2 --\n>  2 files changed, 7 insertions(+), 9 deletions(-)\n> \n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 5b25ef847ed4..567782a66ba3 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -1,5 +1,7 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> +libcamera_include_dir = 'libcamera' / 'libcamera'\n> +\n>  libcamera_public_headers = files([\n>      'camera.h',\n>      'camera_manager.h',\n> @@ -16,14 +18,12 @@ libcamera_public_headers = files([\n>      'transform.h',\n>  ])\n>  \n> -include_dir = libcamera_include_dir / 'libcamera'\n> -\n>  subdir('base')\n>  subdir('internal')\n>  subdir('ipa')\n>  \n>  install_headers(libcamera_public_headers,\n> -                subdir : include_dir)\n> +                subdir : libcamera_include_dir)\n>  \n>  #\n>  # Generate headers from templates.\n> @@ -44,7 +44,7 @@ foreach header : control_source_files\n>                                       output : header + '.h',\n>                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n>                                       install : true,\n> -                                     install_dir : get_option('includedir') / include_dir)\n> +                                     install_dir : get_option('includedir') / libcamera_include_dir)\n>  endforeach\n>  \n>  libcamera_public_headers += control_headers\n> @@ -59,7 +59,7 @@ formats_h = custom_target('formats_h',\n>                            output : 'formats.h',\n>                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n>                            install : true,\n> -                          install_dir : get_option('includedir') / include_dir)\n> +                          install_dir : get_option('includedir') / libcamera_include_dir)\n>  libcamera_public_headers += formats_h\n>  \n>  # libcamera.h\n> @@ -68,7 +68,7 @@ libcamera_h = custom_target('gen-header',\n>                              output : 'libcamera.h',\n>                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n>                              install : true,\n> -                            install_dir : get_option('includedir') / include_dir)\n> +                            install_dir : get_option('includedir') / libcamera_include_dir)\n>  \n>  libcamera_public_headers += libcamera_h\n>  \n> @@ -82,4 +82,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n>  configure_file(input : 'version.h.in',\n>                 output : 'version.h',\n>                 configuration : libcamera_version_config,\n> -               install_dir : get_option('includedir') / include_dir)\n> +               install_dir : get_option('includedir') / libcamera_include_dir)\n> diff --git a/include/meson.build b/include/meson.build\n> index 2ac9a3a049f2..27ce2f41c534 100644\n> --- a/include/meson.build\n> +++ b/include/meson.build\n> @@ -1,6 +1,4 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> -libcamera_include_dir = 'libcamera'\n> -\n>  subdir('android')\n>  subdir('libcamera')\n> -- \n> Regards,\n> \n> Laurent Pinchart\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 679F2BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 28 Sep 2021 16:48:02 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C24B769191;\n\tTue, 28 Sep 2021 18:48:01 +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 D9F7D69188\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 28 Sep 2021 18:47:59 +0200 (CEST)","from ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 58D733F1;\n\tTue, 28 Sep 2021 18:47:59 +0200 (CEST)"],"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=\"O+PifE3l\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632847679;\n\tbh=H7rmlT0T68+/+nVDfS1XjdBf4+4qHeogA7+itDH75yI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=O+PifE3l+anToBsFUZcmkOpklnsi1O2VgC8IJCXpvouRIdeEAyqrLsJO6pf3GteAx\n\t7jhWP7g1CEPmmOQyT39ZYA7+y2Uc810Lv5/jCU1cgEHZh3mfgz/gWdBpqR+nnozyp3\n\tp7Ko53Ekt7Fxi05G45JKVYFz0lYrTHGLWaNUu2OE=","Date":"Tue, 28 Sep 2021 17:47:57 +0100","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210928164757.vkcrli35bthxayrk@ideasonboard.com>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-2-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210926164554.19325-2-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19944,"web_url":"https://patchwork.libcamera.org/comment/19944/","msgid":"<20210928165505.sa5qshqpbo73wwgl@ideasonboard.com>","date":"2021-09-28T16:55:05","subject":"Re: [libcamera-devel] [PATCH v1 2/2] libcamera: Simplify header\n\tinstall paths with shortcut variables","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"On Sun, Sep 26, 2021 at 07:45:54PM +0300, Laurent Pinchart wrote:\n> Create local install_dir meson variable to store the full path to the\n> installation directory for the libcamera and ipa headers. This shortens\n> lines and avoids duplicating calls to get_option('includedir').\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  include/libcamera/ipa/meson.build |  6 ++++--\n>  include/libcamera/meson.build     | 10 ++++++----\n>  2 files changed, 10 insertions(+), 6 deletions(-)\n> \n> diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build\n> index 81fb69f0b681..c36a6fadc3f1 100644\n> --- a/include/libcamera/ipa/meson.build\n> +++ b/include/libcamera/ipa/meson.build\n> @@ -13,6 +13,8 @@ install_headers(libcamera_ipa_headers,\n>  \n>  libcamera_generated_ipa_headers = []\n>  \n> +install_dir = get_option('includedir') / libcamera_ipa_include_dir\n> +\n\nI'm pretty sure I tried to do something like this, and you called it out\nas a potential namespace conflict against the meson variables.\n\nMeson doesn't have local namespaces though so that install_dir becomes\n'globally' accessible through out meson.\n\nShould it be ipa_install_dir?\n\nOtherwise perhaps at least a comment above it saying this variable is\nlocal to this meson.build?\n\n\n\n>  #\n>  # Prepare IPA/IPC generation components\n>  #\n> @@ -34,7 +36,7 @@ libcamera_generated_ipa_headers += custom_target('core_ipa_interface_h',\n>                    output : 'core_ipa_interface.h',\n>                    depends : mojom_templates,\n>                    install : true,\n> -                  install_dir : get_option('includedir') / libcamera_ipa_include_dir,\n> +                  install_dir : install_dir,\n>                    command : [\n>                        mojom_generator, 'generate',\n>                        '-g', 'libcamera',\n> @@ -98,7 +100,7 @@ foreach file : ipa_mojom_files\n>                             output : name + '_ipa_interface.h',\n>                             depends : mojom_templates,\n>                             install : true,\n> -                           install_dir : get_option('includedir') / libcamera_ipa_include_dir,\n> +                           install_dir : install_dir,\n>                             command : [\n>                                 mojom_generator, 'generate',\n>                                 '-g', 'libcamera',\n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 567782a66ba3..c5a639d50356 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -29,6 +29,8 @@ install_headers(libcamera_public_headers,\n>  # Generate headers from templates.\n>  #\n>  \n> +install_dir = get_option('includedir') / libcamera_include_dir\n> +\n>  # control_ids.h and property_ids.h\n>  control_source_files = [\n>      'control_ids',\n> @@ -44,7 +46,7 @@ foreach header : control_source_files\n>                                       output : header + '.h',\n>                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n>                                       install : true,\n> -                                     install_dir : get_option('includedir') / libcamera_include_dir)\n> +                                     install_dir : install_dir)\n>  endforeach\n>  \n>  libcamera_public_headers += control_headers\n> @@ -59,7 +61,7 @@ formats_h = custom_target('formats_h',\n>                            output : 'formats.h',\n>                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n>                            install : true,\n> -                          install_dir : get_option('includedir') / libcamera_include_dir)\n> +                          install_dir : install_dir)\n>  libcamera_public_headers += formats_h\n>  \n>  # libcamera.h\n> @@ -68,7 +70,7 @@ libcamera_h = custom_target('gen-header',\n>                              output : 'libcamera.h',\n>                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n>                              install : true,\n> -                            install_dir : get_option('includedir') / libcamera_include_dir)\n> +                            install_dir : install_dir)\n>  \n>  libcamera_public_headers += libcamera_h\n>  \n> @@ -82,4 +84,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n>  configure_file(input : 'version.h.in',\n>                 output : 'version.h',\n>                 configuration : libcamera_version_config,\n> -               install_dir : get_option('includedir') / libcamera_include_dir)\n> +               install_dir : install_dir)\n> -- \n> Regards,\n> \n> Laurent Pinchart\n\n--\nKieran","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 7FBAFC3243\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 28 Sep 2021 16:55:09 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1343869193;\n\tTue, 28 Sep 2021 18:55:09 +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 DCAB869188\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 28 Sep 2021 18:55:07 +0200 (CEST)","from ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5210B3F1;\n\tTue, 28 Sep 2021 18:55:07 +0200 (CEST)"],"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=\"g5tRq4D7\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632848107;\n\tbh=qh0OxKsI7ZuvHpAkNlfm+XLsJXFTv45eEJg25RxACRY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=g5tRq4D7ZzVgoT8Ry3rLWMCV/vuEV3/OizHRGgnaiiysqaLRJw3R0lYUsjnnxPqzg\n\t8M51/EI7HtcLgeRZIEg9AzE4RkCYfmnq2QaI0b5RlJhOg49n0ozLEeobHyIx/zB6Ux\n\tBukeF690uA+3sXjsV6U1OX6So5MYQ3Nh8/McP57Y=","Date":"Tue, 28 Sep 2021 17:55:05 +0100","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210928165505.sa5qshqpbo73wwgl@ideasonboard.com>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-3-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210926164554.19325-3-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 2/2] libcamera: Simplify header\n\tinstall paths with shortcut variables","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19945,"web_url":"https://patchwork.libcamera.org/comment/19945/","msgid":"<YVNMTL18SzCaqYzJ@pendragon.ideasonboard.com>","date":"2021-09-28T17:09:32","subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Tue, Sep 28, 2021 at 05:47:57PM +0100, Kieran Bingham wrote:\n> On Sun, Sep 26, 2021 at 07:45:53PM +0300, Laurent Pinchart wrote:\n> > All libcamera headers are meant to be installed in\n> > ${prefix}/include/libcamera/libcamera, with pkgconfig specifying the\n> \n> The 'first' libcamera here is supposed to be the overall package, and we\n> could perhaps envision being versioned if necessary later right?\n\nCorrect. libcamera-1, libcamera-2, ...\n\n> While the second libcamera is of course the 'libcamera' part.\n> \n> I think originally my aim was to have that first component out as a\n> variable as it could be expected to change.\n\nIt's a good point, but we can probably fix it on top. Appending the\nsoname version should be simple enough.\n\n> however, this fixes things up for now - and so I don't mind it being\n> hardcoded (in a better way than before).\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > include directory as `-I ${prefix}/include/libcamera`. Applications then\n> > include the headers with `#include <libcamera/camera.h>`.\n> > \n> > The base and ipa headers are meant to be installed in subdirectories of\n> > the libcamera headers directory, but are mistakenly installed one level\n> > too high, in ${prefix}/include/libcamera. This leads to compilation\n> > failures when including the base or ipa header.\n> > \n> > Fix this by setting the meson libcamera_include_dir variable to the\n> > libcamera headers directory. All other header paths are derived from\n> > that variable and are now correct.\n> > \n> > Reported-by: Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>\n> > Bug: https://bugs.libcamera.org/show_bug.cgi?id=79\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  include/libcamera/meson.build | 14 +++++++-------\n> >  include/meson.build           |  2 --\n> >  2 files changed, 7 insertions(+), 9 deletions(-)\n> > \n> > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> > index 5b25ef847ed4..567782a66ba3 100644\n> > --- a/include/libcamera/meson.build\n> > +++ b/include/libcamera/meson.build\n> > @@ -1,5 +1,7 @@\n> >  # SPDX-License-Identifier: CC0-1.0\n> >  \n> > +libcamera_include_dir = 'libcamera' / 'libcamera'\n> > +\n> >  libcamera_public_headers = files([\n> >      'camera.h',\n> >      'camera_manager.h',\n> > @@ -16,14 +18,12 @@ libcamera_public_headers = files([\n> >      'transform.h',\n> >  ])\n> >  \n> > -include_dir = libcamera_include_dir / 'libcamera'\n> > -\n> >  subdir('base')\n> >  subdir('internal')\n> >  subdir('ipa')\n> >  \n> >  install_headers(libcamera_public_headers,\n> > -                subdir : include_dir)\n> > +                subdir : libcamera_include_dir)\n> >  \n> >  #\n> >  # Generate headers from templates.\n> > @@ -44,7 +44,7 @@ foreach header : control_source_files\n> >                                       output : header + '.h',\n> >                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n> >                                       install : true,\n> > -                                     install_dir : get_option('includedir') / include_dir)\n> > +                                     install_dir : get_option('includedir') / libcamera_include_dir)\n> >  endforeach\n> >  \n> >  libcamera_public_headers += control_headers\n> > @@ -59,7 +59,7 @@ formats_h = custom_target('formats_h',\n> >                            output : 'formats.h',\n> >                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n> >                            install : true,\n> > -                          install_dir : get_option('includedir') / include_dir)\n> > +                          install_dir : get_option('includedir') / libcamera_include_dir)\n> >  libcamera_public_headers += formats_h\n> >  \n> >  # libcamera.h\n> > @@ -68,7 +68,7 @@ libcamera_h = custom_target('gen-header',\n> >                              output : 'libcamera.h',\n> >                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n> >                              install : true,\n> > -                            install_dir : get_option('includedir') / include_dir)\n> > +                            install_dir : get_option('includedir') / libcamera_include_dir)\n> >  \n> >  libcamera_public_headers += libcamera_h\n> >  \n> > @@ -82,4 +82,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n> >  configure_file(input : 'version.h.in',\n> >                 output : 'version.h',\n> >                 configuration : libcamera_version_config,\n> > -               install_dir : get_option('includedir') / include_dir)\n> > +               install_dir : get_option('includedir') / libcamera_include_dir)\n> > diff --git a/include/meson.build b/include/meson.build\n> > index 2ac9a3a049f2..27ce2f41c534 100644\n> > --- a/include/meson.build\n> > +++ b/include/meson.build\n> > @@ -1,6 +1,4 @@\n> >  # SPDX-License-Identifier: CC0-1.0\n> >  \n> > -libcamera_include_dir = 'libcamera'\n> > -\n> >  subdir('android')\n> >  subdir('libcamera')","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 8A104BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 28 Sep 2021 17:09:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B97F669191;\n\tTue, 28 Sep 2021 19:09:35 +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 F2F6469188\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 28 Sep 2021 19:09:33 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 64E603F1;\n\tTue, 28 Sep 2021 19:09:33 +0200 (CEST)"],"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=\"n7SZfmTl\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632848973;\n\tbh=K5Axdfab8mdy5OEYUqG7S3fEpEofWj0e33OYWXgli1c=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=n7SZfmTlQ7M+JzOJiy3Q4q0hcgkbwO1+GHSE9mYGw80MGupgStcd9oVywCLK9GtnQ\n\totYUdSNbnsqBLR6WKiEIbVwtnTxYB2BNFqFx4NifFeUWuSimDC/WuiS9bB9Tx0ucWQ\n\tooXjcEvXXKoAxsmrt5fXKQzpneYFQJILQh69x12Q=","Date":"Tue, 28 Sep 2021 20:09:32 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YVNMTL18SzCaqYzJ@pendragon.ideasonboard.com>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-2-laurent.pinchart@ideasonboard.com>\n\t<20210928164757.vkcrli35bthxayrk@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210928164757.vkcrli35bthxayrk@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 1/2] libcamera: Fix base and ipa\n\tinclude dir","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19946,"web_url":"https://patchwork.libcamera.org/comment/19946/","msgid":"<YVNM4m1g2Crn+qoX@pendragon.ideasonboard.com>","date":"2021-09-28T17:12:02","subject":"Re: [libcamera-devel] [PATCH v1 2/2] libcamera: Simplify header\n\tinstall paths with shortcut variables","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Tue, Sep 28, 2021 at 05:55:05PM +0100, Kieran Bingham wrote:\n> On Sun, Sep 26, 2021 at 07:45:54PM +0300, Laurent Pinchart wrote:\n> > Create local install_dir meson variable to store the full path to the\n> > installation directory for the libcamera and ipa headers. This shortens\n> > lines and avoids duplicating calls to get_option('includedir').\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  include/libcamera/ipa/meson.build |  6 ++++--\n> >  include/libcamera/meson.build     | 10 ++++++----\n> >  2 files changed, 10 insertions(+), 6 deletions(-)\n> > \n> > diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build\n> > index 81fb69f0b681..c36a6fadc3f1 100644\n> > --- a/include/libcamera/ipa/meson.build\n> > +++ b/include/libcamera/ipa/meson.build\n> > @@ -13,6 +13,8 @@ install_headers(libcamera_ipa_headers,\n> >  \n> >  libcamera_generated_ipa_headers = []\n> >  \n> > +install_dir = get_option('includedir') / libcamera_ipa_include_dir\n> > +\n> \n> I'm pretty sure I tried to do something like this, and you called it out\n> as a potential namespace conflict against the meson variables.\n> \n> Meson doesn't have local namespaces though so that install_dir becomes\n> 'globally' accessible through out meson.\n> \n> Should it be ipa_install_dir?\n> \n> Otherwise perhaps at least a comment above it saying this variable is\n> local to this meson.build?\n\nThe lack of local variables is indeed a bit annoying. I've essentially\ntreated install_dir as a local variable here and in\ninclude/libcamera/meson.build. If we wanted to avoid using the same\nname, they should be named ipa_headers_install_dir and\nlibcamera_headers_install_dir. Would you prefer that, or comments here\nand below to state those variables are local ?\n\n# include_dir is a local variable\n\n> >  #\n> >  # Prepare IPA/IPC generation components\n> >  #\n> > @@ -34,7 +36,7 @@ libcamera_generated_ipa_headers += custom_target('core_ipa_interface_h',\n> >                    output : 'core_ipa_interface.h',\n> >                    depends : mojom_templates,\n> >                    install : true,\n> > -                  install_dir : get_option('includedir') / libcamera_ipa_include_dir,\n> > +                  install_dir : install_dir,\n> >                    command : [\n> >                        mojom_generator, 'generate',\n> >                        '-g', 'libcamera',\n> > @@ -98,7 +100,7 @@ foreach file : ipa_mojom_files\n> >                             output : name + '_ipa_interface.h',\n> >                             depends : mojom_templates,\n> >                             install : true,\n> > -                           install_dir : get_option('includedir') / libcamera_ipa_include_dir,\n> > +                           install_dir : install_dir,\n> >                             command : [\n> >                                 mojom_generator, 'generate',\n> >                                 '-g', 'libcamera',\n> > diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> > index 567782a66ba3..c5a639d50356 100644\n> > --- a/include/libcamera/meson.build\n> > +++ b/include/libcamera/meson.build\n> > @@ -29,6 +29,8 @@ install_headers(libcamera_public_headers,\n> >  # Generate headers from templates.\n> >  #\n> >  \n> > +install_dir = get_option('includedir') / libcamera_include_dir\n> > +\n> >  # control_ids.h and property_ids.h\n> >  control_source_files = [\n> >      'control_ids',\n> > @@ -44,7 +46,7 @@ foreach header : control_source_files\n> >                                       output : header + '.h',\n> >                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n> >                                       install : true,\n> > -                                     install_dir : get_option('includedir') / libcamera_include_dir)\n> > +                                     install_dir : install_dir)\n> >  endforeach\n> >  \n> >  libcamera_public_headers += control_headers\n> > @@ -59,7 +61,7 @@ formats_h = custom_target('formats_h',\n> >                            output : 'formats.h',\n> >                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n> >                            install : true,\n> > -                          install_dir : get_option('includedir') / libcamera_include_dir)\n> > +                          install_dir : install_dir)\n> >  libcamera_public_headers += formats_h\n> >  \n> >  # libcamera.h\n> > @@ -68,7 +70,7 @@ libcamera_h = custom_target('gen-header',\n> >                              output : 'libcamera.h',\n> >                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n> >                              install : true,\n> > -                            install_dir : get_option('includedir') / libcamera_include_dir)\n> > +                            install_dir : install_dir)\n> >  \n> >  libcamera_public_headers += libcamera_h\n> >  \n> > @@ -82,4 +84,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n> >  configure_file(input : 'version.h.in',\n> >                 output : 'version.h',\n> >                 configuration : libcamera_version_config,\n> > -               install_dir : get_option('includedir') / libcamera_include_dir)\n> > +               install_dir : install_dir)","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 9E2BFC3243\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 28 Sep 2021 17:12:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C338C69191;\n\tTue, 28 Sep 2021 19:12:04 +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 7C4B969188\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 28 Sep 2021 19:12:03 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E8C443F1;\n\tTue, 28 Sep 2021 19:12:02 +0200 (CEST)"],"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=\"dyCQ8eLs\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632849123;\n\tbh=7hf4Hz+GiJ2z1B0n5S8f1h4H07hKWbmU4HbUQ04wl6Y=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=dyCQ8eLsmzqE3MtMxmkfc5wYBUT+lZybgiCZ8ASqnVajzoelvHFuG9naQX73+eior\n\tfk/2h2quf3XwSQ+YeP+VtyKKgMLO4io+2BVOW4m2s4e/hOKnEl5mZ2VKeR7aDDR8Ph\n\tvzJ4zH0SPDxPX6UNCfr8Tbdxw7jNe/mA5DmSGP7k=","Date":"Tue, 28 Sep 2021 20:12:02 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YVNM4m1g2Crn+qoX@pendragon.ideasonboard.com>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-3-laurent.pinchart@ideasonboard.com>\n\t<20210928165505.sa5qshqpbo73wwgl@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210928165505.sa5qshqpbo73wwgl@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v1 2/2] libcamera: Simplify header\n\tinstall paths with shortcut variables","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19972,"web_url":"https://patchwork.libcamera.org/comment/19972/","msgid":"<d492c72f-e048-200b-3b72-d4caf76762e8@ideasonboard.com>","date":"2021-09-29T08:06:20","subject":"Re: [libcamera-devel] [PATCH v1 2/2] libcamera: Simplify header\n\tinstall paths with shortcut variables","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"On 28/09/2021 18:12, Laurent Pinchart wrote:\n> Hi Kieran,\n> \n> On Tue, Sep 28, 2021 at 05:55:05PM +0100, Kieran Bingham wrote:\n>> On Sun, Sep 26, 2021 at 07:45:54PM +0300, Laurent Pinchart wrote:\n>>> Create local install_dir meson variable to store the full path to the\n>>> installation directory for the libcamera and ipa headers. This shortens\n>>> lines and avoids duplicating calls to get_option('includedir').\n>>>\n>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>> ---\n>>>  include/libcamera/ipa/meson.build |  6 ++++--\n>>>  include/libcamera/meson.build     | 10 ++++++----\n>>>  2 files changed, 10 insertions(+), 6 deletions(-)\n>>>\n>>> diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build\n>>> index 81fb69f0b681..c36a6fadc3f1 100644\n>>> --- a/include/libcamera/ipa/meson.build\n>>> +++ b/include/libcamera/ipa/meson.build\n>>> @@ -13,6 +13,8 @@ install_headers(libcamera_ipa_headers,\n>>>  \n>>>  libcamera_generated_ipa_headers = []\n>>>  \n>>> +install_dir = get_option('includedir') / libcamera_ipa_include_dir\n>>> +\n>>\n>> I'm pretty sure I tried to do something like this, and you called it out\n>> as a potential namespace conflict against the meson variables.\n>>\n>> Meson doesn't have local namespaces though so that install_dir becomes\n>> 'globally' accessible through out meson.\n>>\n>> Should it be ipa_install_dir?\n>>\n>> Otherwise perhaps at least a comment above it saying this variable is\n>> local to this meson.build?\n> \n> The lack of local variables is indeed a bit annoying. I've essentially\n> treated install_dir as a local variable here and in\n> include/libcamera/meson.build. If we wanted to avoid using the same\n> name, they should be named ipa_headers_install_dir and\n> libcamera_headers_install_dir. Would you prefer that, or comments here\n> and below to state those variables are local ?\n> \n> # include_dir is a local variable\n\nEither of those options is fine with me.\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n--\nKieran\n\n\n\n> \n>>>  #\n>>>  # Prepare IPA/IPC generation components\n>>>  #\n>>> @@ -34,7 +36,7 @@ libcamera_generated_ipa_headers += custom_target('core_ipa_interface_h',\n>>>                    output : 'core_ipa_interface.h',\n>>>                    depends : mojom_templates,\n>>>                    install : true,\n>>> -                  install_dir : get_option('includedir') / libcamera_ipa_include_dir,\n>>> +                  install_dir : install_dir,\n>>>                    command : [\n>>>                        mojom_generator, 'generate',\n>>>                        '-g', 'libcamera',\n>>> @@ -98,7 +100,7 @@ foreach file : ipa_mojom_files\n>>>                             output : name + '_ipa_interface.h',\n>>>                             depends : mojom_templates,\n>>>                             install : true,\n>>> -                           install_dir : get_option('includedir') / libcamera_ipa_include_dir,\n>>> +                           install_dir : install_dir,\n>>>                             command : [\n>>>                                 mojom_generator, 'generate',\n>>>                                 '-g', 'libcamera',\n>>> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n>>> index 567782a66ba3..c5a639d50356 100644\n>>> --- a/include/libcamera/meson.build\n>>> +++ b/include/libcamera/meson.build\n>>> @@ -29,6 +29,8 @@ install_headers(libcamera_public_headers,\n>>>  # Generate headers from templates.\n>>>  #\n>>>  \n>>> +install_dir = get_option('includedir') / libcamera_include_dir\n>>> +\n>>>  # control_ids.h and property_ids.h\n>>>  control_source_files = [\n>>>      'control_ids',\n>>> @@ -44,7 +46,7 @@ foreach header : control_source_files\n>>>                                       output : header + '.h',\n>>>                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n>>>                                       install : true,\n>>> -                                     install_dir : get_option('includedir') / libcamera_include_dir)\n>>> +                                     install_dir : install_dir)\n>>>  endforeach\n>>>  \n>>>  libcamera_public_headers += control_headers\n>>> @@ -59,7 +61,7 @@ formats_h = custom_target('formats_h',\n>>>                            output : 'formats.h',\n>>>                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n>>>                            install : true,\n>>> -                          install_dir : get_option('includedir') / libcamera_include_dir)\n>>> +                          install_dir : install_dir)\n>>>  libcamera_public_headers += formats_h\n>>>  \n>>>  # libcamera.h\n>>> @@ -68,7 +70,7 @@ libcamera_h = custom_target('gen-header',\n>>>                              output : 'libcamera.h',\n>>>                              command : [gen_header, meson.current_source_dir(), '@OUTPUT@'],\n>>>                              install : true,\n>>> -                            install_dir : get_option('includedir') / libcamera_include_dir)\n>>> +                            install_dir : install_dir)\n>>>  \n>>>  libcamera_public_headers += libcamera_h\n>>>  \n>>> @@ -82,4 +84,4 @@ libcamera_version_config.set('LIBCAMERA_VERSION_PATCH', version[2])\n>>>  configure_file(input : 'version.h.in',\n>>>                 output : 'version.h',\n>>>                 configuration : libcamera_version_config,\n>>> -               install_dir : get_option('includedir') / libcamera_include_dir)\n>>> +               install_dir : install_dir)\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 2AF40BDC71\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 29 Sep 2021 08:06:25 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DE7A069191;\n\tWed, 29 Sep 2021 10:06:24 +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 A5C726918A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 29 Sep 2021 10:06:23 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 37AF93F0;\n\tWed, 29 Sep 2021 10:06:23 +0200 (CEST)"],"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=\"HgR1ZTPX\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1632902783;\n\tbh=FX1qcKOOShCgk4sA1VWx2TMl62m6AmC3BR8OsUeQ8JA=;\n\th=From:Subject:To:Cc:References:Date:In-Reply-To:From;\n\tb=HgR1ZTPXRxMTVYwsgIOEwmByDsesPzsxaN7DMVnpw3IRD6qv0PNVRdeUUc7X6t38e\n\tQ58wntGb26aBym3iyU9qWR6HHMMiM0rIAMf/lR7TKNlGJOfIYnF4inPzW/1Z72ZJpG\n\tCd2JVeZmqLrTG69Zc1hv3Z0OhhUX8XyiwDw88jXw=","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","References":"<20210926164554.19325-1-laurent.pinchart@ideasonboard.com>\n\t<20210926164554.19325-3-laurent.pinchart@ideasonboard.com>\n\t<20210928165505.sa5qshqpbo73wwgl@ideasonboard.com>\n\t<YVNM4m1g2Crn+qoX@pendragon.ideasonboard.com>","Message-ID":"<d492c72f-e048-200b-3b72-d4caf76762e8@ideasonboard.com>","Date":"Wed, 29 Sep 2021 09:06:20 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.13.0","MIME-Version":"1.0","In-Reply-To":"<YVNM4m1g2Crn+qoX@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH v1 2/2] libcamera: Simplify header\n\tinstall paths with shortcut variables","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":"Dorota Czaplejewicz <dorota.czaplejewicz@puri.sm>,\n\tlibcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]