[{"id":16698,"web_url":"https://patchwork.libcamera.org/comment/16698/","msgid":"<5aac57af-8948-e8f4-90e8-fcf20fc8d235@ideasonboard.com>","date":"2021-04-30T12:16:10","subject":"Re: [libcamera-devel] [PATCH v1 2/3] libcamera: Use\n\tget_option('includedir') instead of raw 'include'","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Umang,\n\nOn 30/04/2021 12:43, Umang Jain wrote:\n> In most cases, file paths in meson files start with get_option().\n> To maintain a consistent theme, use meson's get_option('includedir')\n> universal option over raw 'include'. This option is defaulted to\n> 'include' string value, hence this commit does not introduce any\n> functional changes.\n> \n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n>  include/libcamera/meson.build | 8 ++++----\n>  1 file changed, 4 insertions(+), 4 deletions(-)\n> \n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index 4a5b915e..086c958b 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -48,7 +48,7 @@ foreach header : control_source_files\n>                                       output : header + '.h',\n>                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n>                                       install : true,\n> -                                     install_dir : 'include' / include_dir)\n> +                                     install_dir : get_option('includedir') / include_dir)\n\ninclude_dir is currently defined as 'libcamera'.\n\nCould we make this use the same style as the 'define system paths'\npatch, and also update this variable to become\n\nlibcamera_includedir = get_option('includedir') / 'libcamera'\n\nand then use that as the install dir?\n\n\n\n\n>  endforeach\n>  \n>  libcamera_public_headers += control_headers\n> @@ -63,7 +63,7 @@ formats_h = custom_target('formats_h',\n>                            output : 'formats.h',\n>                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n>                            install : true,\n> -                          install_dir : 'include' / include_dir)\n> +                          install_dir : get_option('includedir') / include_dir)\n>  libcamera_public_headers += formats_h\n>  \n>  # libcamera.h\n> @@ -72,7 +72,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 : 'include' / include_dir)\n> +                            install_dir : get_option('includedir') / include_dir)\n>  \n>  libcamera_public_headers += libcamera_h\n>  \n> @@ -86,4 +86,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 : 'include' / include_dir)\n> +               install_dir : get_option('includedir') / include_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 D7277BDE47\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Apr 2021 12:16:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 172DF68901;\n\tFri, 30 Apr 2021 14:16:16 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A57D7688A5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Apr 2021 14:16:14 +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 04A011027;\n\tFri, 30 Apr 2021 14:16:13 +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=\"UCZYYkPp\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1619784974;\n\tbh=FLDHsr4NhJcF0zCIhbpyf/x/baZATl/3M4EgKkU5MdI=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=UCZYYkPpwZ49tjItFv4IflaR8BVDgABFpOOp1dNuwey0t2U3dJka3P82EqtrSTjQR\n\t3SBG86XlGkVpkVMQ1sHLSAAG8thrq7vEP9duN8shnfB7oKBg5eDTRRGW2P8IM1rrES\n\tYpzDXFrGhZEkkAxmmxpYqC1dtazyn3GdVOv6+KsE=","To":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20210430114331.151018-1-umang.jain@ideasonboard.com>\n\t<20210430114331.151018-3-umang.jain@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Organization":"Ideas on Board","Message-ID":"<5aac57af-8948-e8f4-90e8-fcf20fc8d235@ideasonboard.com>","Date":"Fri, 30 Apr 2021 13:16:10 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.7.1","MIME-Version":"1.0","In-Reply-To":"<20210430114331.151018-3-umang.jain@ideasonboard.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH v1 2/3] libcamera: Use\n\tget_option('includedir') instead of raw 'include'","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>","Reply-To":"kieran.bingham@ideasonboard.com","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16699,"web_url":"https://patchwork.libcamera.org/comment/16699/","msgid":"<1aed3a75-427d-f584-d651-0172aced446a@ideasonboard.com>","date":"2021-04-30T12:25:01","subject":"Re: [libcamera-devel] [PATCH v1 1/3] meson: Replace obselete\n\tjoin_paths() with '/' operator","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Umang,\n\nOn 30/04/2021 12:43, Umang Jain wrote:\n> Since meson v0.49.0, join_paths() is equivalent to '/' hence,\n> drop and replace it with '/' short-hand in meson files.\n> \n> This commit does not introduce any functional changes.\n> \n> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n> ---\n>  Documentation/meson.build              |  4 ++--\n>  include/libcamera/ipa/meson.build      |  2 +-\n>  include/libcamera/meson.build          | 10 +++++-----\n>  meson.build                            |  3 +--\n>  src/ipa/meson.build                    | 14 +++++++-------\n>  src/ipa/raspberrypi/data/meson.build   |  2 +-\n>  src/ipa/vimc/data/meson.build          |  2 +-\n>  src/libcamera/meson.build              |  2 +-\n>  src/libcamera/proxy/worker/meson.build |  4 ++--\n>  9 files changed, 21 insertions(+), 22 deletions(-)\n> \n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index 9950465d..ef3e1696 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -1,7 +1,7 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> -doc_install_dir = join_paths(get_option('datadir'), 'doc',\n> -                             'libcamera-@0@'.format(libcamera_version))\n> +doc_install_dir = get_option('datadir') / 'doc' / \\\n> +                  'libcamera-@0@'.format(libcamera_version)\n\nI'm not sure which is better, A line continuation marker, which is\nreally close to the 'join' operator (/ \\) or 92 chars.\n\n92 chars is still under 120 which is our full max line limit, so this\ncould be one line.\n\nEither way is ok with me though.\n\n\n>  \n>  #\n>  # Doxygen\n> diff --git a/include/libcamera/ipa/meson.build b/include/libcamera/ipa/meson.build\n> index 2d72c1fc..40c4e737 100644\n> --- a/include/libcamera/ipa/meson.build\n> +++ b/include/libcamera/ipa/meson.build\n> @@ -7,7 +7,7 @@ libcamera_ipa_headers = files([\n>  ])\n>  \n>  install_headers(libcamera_ipa_headers,\n> -                subdir: join_paths(libcamera_include_dir, 'ipa'))\n> +                subdir: libcamera_include_dir / 'ipa')\n\nEeep - and I had just suggested we add a libcamera_includedir ...\n\n\n\n>  \n>  libcamera_generated_ipa_headers = []\n>  \n> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n> index c7b8ee8e..4a5b915e 100644\n> --- a/include/libcamera/meson.build\n> +++ b/include/libcamera/meson.build\n> @@ -21,7 +21,7 @@ libcamera_public_headers = files([\n>      'transform.h',\n>  ])\n>  \n> -include_dir = join_paths(libcamera_include_dir, 'libcamera')\n> +include_dir = libcamera_include_dir / 'libcamera'\n\n\nAha, which would have been here.\n\nSo we have too many levels of libcamera_includedir ...\n\n\n\n>  \n>  subdir('internal')\n>  subdir('ipa')\n> @@ -48,7 +48,7 @@ foreach header : control_source_files\n>                                       output : header + '.h',\n>                                       command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n>                                       install : true,\n> -                                     install_dir : join_paths('include', include_dir))\n> +                                     install_dir : 'include' / include_dir)\n>  endforeach\n>  \n>  libcamera_public_headers += control_headers\n> @@ -63,7 +63,7 @@ formats_h = custom_target('formats_h',\n>                            output : 'formats.h',\n>                            command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n>                            install : true,\n> -                          install_dir : join_paths('include', include_dir))\n> +                          install_dir : 'include' / include_dir)\n>  libcamera_public_headers += formats_h\n>  \n>  # libcamera.h\n> @@ -72,7 +72,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 : join_paths('include', include_dir))\n> +                            install_dir : 'include' / include_dir)\n>  \n>  libcamera_public_headers += libcamera_h\n>  \n> @@ -86,4 +86,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 : join_paths('include', include_dir))\n> +               install_dir : 'include' / include_dir)\n> diff --git a/meson.build b/meson.build\n> index 13d88301..46eb1b46 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -148,8 +148,7 @@ endif\n>  # Create a symlink from the build root to the source root. This is used when\n>  # running libcamera from the build directory to locate resources in the source\n>  # directory (such as IPA configuration files).\n> -run_command('ln', '-fsT', meson.source_root(),\n> -            join_paths(meson.build_root(), 'source'))\n> +run_command('ln', '-fsT', meson.source_root(), meson.build_root() / 'source')\n>  \n>  configure_file(output : 'config.h', configuration : config_h)\n>  \n> diff --git a/src/ipa/meson.build b/src/ipa/meson.build\n> index df385eae..b1abfc74 100644\n> --- a/src/ipa/meson.build\n> +++ b/src/ipa/meson.build\n> @@ -1,19 +1,19 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> -ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')\n> -ipa_data_dir = join_paths(get_option('datadir'), 'libcamera', 'ipa')\n> -ipa_sysconf_dir = join_paths(get_option('sysconfdir'), 'libcamera', 'ipa')\n> +ipa_install_dir = get_option('libdir') / 'libcamera'\n> +ipa_data_dir = get_option('datadir') / 'libcamera' / 'ipa'\n> +ipa_sysconf_dir = get_option('sysconfdir') /'libcamera' / 'ipa'\n>  \n>  ipa_includes = [\n>      libcamera_includes,\n>  ]\n>  \n>  config_h.set('IPA_CONFIG_DIR',\n> -             '\"' + join_paths(get_option('prefix'), ipa_sysconf_dir) +\n> -             ':' + join_paths(get_option('prefix'), ipa_data_dir) + '\"')\n> +             '\"' + get_option('prefix') / ipa_sysconf_dir +\n> +             ':' + get_option('prefix') / ipa_data_dir + '\"')\n>  \n>  config_h.set('IPA_MODULE_DIR',\n> -             '\"' + join_paths(get_option('prefix'), ipa_install_dir) + '\"')\n> +             '\"' + get_option('prefix') / ipa_install_dir + '\"')\n>  \n>  subdir('libipa')\n>  \n> @@ -25,7 +25,7 @@ ipa_names = []\n>  foreach pipeline : pipelines\n>      if ipas.contains(pipeline)\n>          subdir(pipeline)\n> -        ipa_names += join_paths(ipa_install_dir, ipa_name + '.so')\n> +        ipa_names += ipa_install_dir / ipa_name / '.so'\n\nCareful here.\n\nPreviously this was ipa_name + '.so'\nnot\n ipa_name, '.so'.\n\nWe shouldn't use this as a join path - otherwise it might be creating\n\n...libcamera/ipu3/.so\ninstead of\n...libcamera/ipu3.so\n\n\n\n>      endif\n>  endforeach\n>  \n> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n> index 253fb9d7..92ad3272 100644\n> --- a/src/ipa/raspberrypi/data/meson.build\n> +++ b/src/ipa/raspberrypi/data/meson.build\n> @@ -10,4 +10,4 @@ conf_files = files([\n>  ])\n>  \n>  install_data(conf_files,\n> -             install_dir : join_paths(ipa_data_dir, 'raspberrypi'))\n> +             install_dir : ipa_data_dir / 'raspberrypi')\n> diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n> index 6532662c..42ec651c 100644\n> --- a/src/ipa/vimc/data/meson.build\n> +++ b/src/ipa/vimc/data/meson.build\n> @@ -5,4 +5,4 @@ conf_files = files([\n>  ])\n>  \n>  install_data(conf_files,\n> -             install_dir : join_paths(ipa_data_dir, 'vimc'))\n> +             install_dir : ipa_data_dir / 'vimc')\n> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n> index e0a48aa2..99b09b3a 100644\n> --- a/src/libcamera/meson.build\n> +++ b/src/libcamera/meson.build\n> @@ -102,7 +102,7 @@ endforeach\n>  \n>  libcamera_sources += control_sources\n>  \n> -gen_version = join_paths(meson.source_root(), 'utils', 'gen-version.sh')\n> +gen_version = meson.source_root() / 'utils' / 'gen-version.sh'\n>  \n>  version_cpp = vcs_tag(command : [gen_version, meson.build_root()],\n>                        input : 'version.cpp.in',\n> diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n> index 3796103e..40dada9d 100644\n> --- a/src/libcamera/proxy/worker/meson.build\n> +++ b/src/libcamera/proxy/worker/meson.build\n> @@ -1,6 +1,6 @@\n>  # SPDX-License-Identifier: CC0-1.0\n>  \n> -proxy_install_dir = join_paths(get_option('libexecdir'), 'libcamera')\n> +proxy_install_dir = get_option('libexecdir') / 'libcamera'\n>  \n>  # generate {pipeline}_ipa_proxy_worker.cpp\n>  foreach mojom : ipa_mojoms\n> @@ -25,4 +25,4 @@ foreach mojom : ipa_mojoms\n>  endforeach\n>  \n>  config_h.set('IPA_PROXY_DIR',\n\nOhh another one to add to my paths summary perhaps ...\n\n> -             '\"' + join_paths(get_option('prefix'), proxy_install_dir) + '\"')\n> +             '\"' + get_option('prefix') / proxy_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 D3ACEBDE48\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Apr 2021 12:25:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1B4C36890E;\n\tFri, 30 Apr 2021 14:25:06 +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 ECFE1688A5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Apr 2021 14:25:04 +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 6FD471027;\n\tFri, 30 Apr 2021 14:25:04 +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=\"fqN4v8hj\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1619785504;\n\tbh=RCHZ1SX5v0SD8B6sl6ePy6u3A3PqEf98w1U9IDdc4F8=;\n\th=Reply-To:To:References:From:Subject:Date:In-Reply-To:From;\n\tb=fqN4v8hjLP+E8TY+EDkDk3nW0dhxuhcFhZnd/oAaTBXP8bmYjuRrxHdG0sJYNJ0E/\n\tMMZp4AxcaTh/x4r5mNaT3rd+L7cpOkmnEEABo5w94HBS/+hMtKiYwUijwXhKdGj6y7\n\tvXgX0miC8FiIb4pM3irV5LDyKLcldrB/xkqe1gQY=","To":"Umang Jain <umang.jain@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","References":"<20210430114331.151018-1-umang.jain@ideasonboard.com>\n\t<20210430114331.151018-2-umang.jain@ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Organization":"Ideas on Board","Message-ID":"<1aed3a75-427d-f584-d651-0172aced446a@ideasonboard.com>","Date":"Fri, 30 Apr 2021 13:25:01 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.7.1","MIME-Version":"1.0","In-Reply-To":"<20210430114331.151018-2-umang.jain@ideasonboard.com>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH v1 1/3] meson: Replace obselete\n\tjoin_paths() with '/' operator","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>","Reply-To":"kieran.bingham@ideasonboard.com","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16700,"web_url":"https://patchwork.libcamera.org/comment/16700/","msgid":"<ce2553fb-d48a-28c5-6e23-2f986e8b4ce6@ideasonboard.com>","date":"2021-04-30T12:37:09","subject":"Re: [libcamera-devel] [PATCH v1 2/3] libcamera: Use\n\tget_option('includedir') instead of raw 'include'","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Kieran,\n\nOn 4/30/21 5:46 PM, Kieran Bingham wrote:\n> Hi Umang,\n>\n> On 30/04/2021 12:43, Umang Jain wrote:\n>> In most cases, file paths in meson files start with get_option().\n>> To maintain a consistent theme, use meson's get_option('includedir')\n>> universal option over raw 'include'. This option is defaulted to\n>> 'include' string value, hence this commit does not introduce any\n>> functional changes.\n>>\n>> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>\n>> ---\n>>   include/libcamera/meson.build | 8 ++++----\n>>   1 file changed, 4 insertions(+), 4 deletions(-)\n>>\n>> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build\n>> index 4a5b915e..086c958b 100644\n>> --- a/include/libcamera/meson.build\n>> +++ b/include/libcamera/meson.build\n>> @@ -48,7 +48,7 @@ foreach header : control_source_files\n>>                                        output : header + '.h',\n>>                                        command : [gen_controls, '-o', '@OUTPUT@', '@INPUT@'],\n>>                                        install : true,\n>> -                                     install_dir : 'include' / include_dir)\n>> +                                     install_dir : get_option('includedir') / include_dir)\n> include_dir is currently defined as 'libcamera'.\nNo, in the same file -  include/libcamera/meson.build\ninclude_dir = libcamera_include_dir / 'libcamera'\n\nand\n\nlibcamera_include_dir = 'libcamera' from include/meson.build\n\nso install dir comes to (with --prefix=/usr)\n/usr/include/libcamera/libcamera/\n\n\nRunning a branch with these patches and running a master branch (with \n--prefix=/usr in both) confirms, the public headers are installed to \n/usr/include/libcamera/libcamera/\n\n\n>\n> Could we make this use the same style as the 'define system paths'\n> patch, and also update this variable to become\n>\n> libcamera_includedir = get_option('includedir') / 'libcamera'\n>\n> and then use that as the install dir?\nCan it be done on top? This patch is just to bring in get_option() style \nin for file paths as Laurent suggested earlier?\n>\n>\n>\n>\n>>   endforeach\n>>   \n>>   libcamera_public_headers += control_headers\n>> @@ -63,7 +63,7 @@ formats_h = custom_target('formats_h',\n>>                             output : 'formats.h',\n>>                             command : [gen_formats, '-o', '@OUTPUT@', '@INPUT@'],\n>>                             install : true,\n>> -                          install_dir : 'include' / include_dir)\n>> +                          install_dir : get_option('includedir') / include_dir)\n>>   libcamera_public_headers += formats_h\n>>   \n>>   # libcamera.h\n>> @@ -72,7 +72,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 : 'include' / include_dir)\n>> +                            install_dir : get_option('includedir') / include_dir)\n>>   \n>>   libcamera_public_headers += libcamera_h\n>>   \n>> @@ -86,4 +86,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 : 'include' / include_dir)\n>> +               install_dir : get_option('includedir') / include_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 C74EABDE47\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Apr 2021 12:37:18 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2E5DE68901;\n\tFri, 30 Apr 2021 14:37:18 +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 160EA688A5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Apr 2021 14:37:16 +0200 (CEST)","from localhost.localdomain (unknown [103.251.226.128])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B9EB61027;\n\tFri, 30 Apr 2021 14:37:14 +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=\"p/ZPkYrC\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1619786235;\n\tbh=Cdj58MavvIuqp5FyJj5yP6wK21ZV8hkQrpB0LkKFSBA=;\n\th=Subject:To:References:From:Date:In-Reply-To:From;\n\tb=p/ZPkYrC/TcKsc8IJZu/vIgU8t0OuKWOQ+Ro2ToOgRydYVvDxlTNc6kBgIXrbRtIo\n\tuFAGhjQJdkJg/r8rgLTBSM7+qpMRb6gSGS0fZolDYRyzkWei0YhKvg7CirxRd33Wwa\n\tLww9+hO5XI/7vdrS55TLCBg1ebF8X9qAXO4ye/9g=","To":"kieran.bingham@ideasonboard.com, libcamera-devel@lists.libcamera.org","References":"<20210430114331.151018-1-umang.jain@ideasonboard.com>\n\t<20210430114331.151018-3-umang.jain@ideasonboard.com>\n\t<5aac57af-8948-e8f4-90e8-fcf20fc8d235@ideasonboard.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<ce2553fb-d48a-28c5-6e23-2f986e8b4ce6@ideasonboard.com>","Date":"Fri, 30 Apr 2021 18:07:09 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.11.0","MIME-Version":"1.0","In-Reply-To":"<5aac57af-8948-e8f4-90e8-fcf20fc8d235@ideasonboard.com>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v1 2/3] libcamera: Use\n\tget_option('includedir') instead of raw 'include'","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>","Content-Transfer-Encoding":"base64","Content-Type":"text/plain; charset=\"utf-8\"; Format=\"flowed\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16701,"web_url":"https://patchwork.libcamera.org/comment/16701/","msgid":"<05d540c4-e231-a724-fbdf-8a3be9e8df24@ideasonboard.com>","date":"2021-04-30T12:40:41","subject":"Re: [libcamera-devel] [PATCH v1 1/3] meson: Replace obselete\n\tjoin_paths() with '/' operator","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi\n\n[snip]\n\nOn 4/30/21 5:55 PM, Kieran Bingham wrote:\n>>   ]\n>>   \n>>   config_h.set('IPA_CONFIG_DIR',\n>> -             '\"' + join_paths(get_option('prefix'), ipa_sysconf_dir) +\n>> -             ':' + join_paths(get_option('prefix'), ipa_data_dir) + '\"')\n>> +             '\"' + get_option('prefix') / ipa_sysconf_dir +\n>> +             ':' + get_option('prefix') / ipa_data_dir + '\"')\n>>   \n>>   config_h.set('IPA_MODULE_DIR',\n>> -             '\"' + join_paths(get_option('prefix'), ipa_install_dir) + '\"')\n>> +             '\"' + get_option('prefix') / ipa_install_dir + '\"')\n>>   \n>>   subdir('libipa')\n>>   \n>> @@ -25,7 +25,7 @@ ipa_names = []\n>>   foreach pipeline : pipelines\n>>       if ipas.contains(pipeline)\n>>           subdir(pipeline)\n>> -        ipa_names += join_paths(ipa_install_dir, ipa_name + '.so')\n>> +        ipa_names += ipa_install_dir / ipa_name / '.so'\n> Careful here.\n>\n> Previously this was ipa_name + '.so'\n> not\n>   ipa_name, '.so'.\n>\n> We shouldn't use this as a join path - otherwise it might be creating\n>\n> ...libcamera/ipu3/.so\n> instead of\n> ...libcamera/ipu3.so\noh, this was missed badly, thanks for spotting. Patches were mostly \ncompiled test -\n>\n>\n>\n>>       endif\n>>   endforeach\n>>   \n>> diff --git a/src/ipa/raspberrypi/data/meson.build b/src/ipa/raspberrypi/data/meson.build\n>> index 253fb9d7..92ad3272 100644\n>> --- a/src/ipa/raspberrypi/data/meson.build\n>> +++ b/src/ipa/raspberrypi/data/meson.build\n>> @@ -10,4 +10,4 @@ conf_files = files([\n>>   ])\n>>   \n>>   install_data(conf_files,\n>> -             install_dir : join_paths(ipa_data_dir, 'raspberrypi'))\n>> +             install_dir : ipa_data_dir / 'raspberrypi')\n>> diff --git a/src/ipa/vimc/data/meson.build b/src/ipa/vimc/data/meson.build\n>> index 6532662c..42ec651c 100644\n>> --- a/src/ipa/vimc/data/meson.build\n>> +++ b/src/ipa/vimc/data/meson.build\n>> @@ -5,4 +5,4 @@ conf_files = files([\n>>   ])\n>>   \n>>   install_data(conf_files,\n>> -             install_dir : join_paths(ipa_data_dir, 'vimc'))\n>> +             install_dir : ipa_data_dir / 'vimc')\n>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build\n>> index e0a48aa2..99b09b3a 100644\n>> --- a/src/libcamera/meson.build\n>> +++ b/src/libcamera/meson.build\n>> @@ -102,7 +102,7 @@ endforeach\n>>   \n>>   libcamera_sources += control_sources\n>>   \n>> -gen_version = join_paths(meson.source_root(), 'utils', 'gen-version.sh')\n>> +gen_version = meson.source_root() / 'utils' / 'gen-version.sh'\n>>   \n>>   version_cpp = vcs_tag(command : [gen_version, meson.build_root()],\n>>                         input : 'version.cpp.in',\n>> diff --git a/src/libcamera/proxy/worker/meson.build b/src/libcamera/proxy/worker/meson.build\n>> index 3796103e..40dada9d 100644\n>> --- a/src/libcamera/proxy/worker/meson.build\n>> +++ b/src/libcamera/proxy/worker/meson.build\n>> @@ -1,6 +1,6 @@\n>>   # SPDX-License-Identifier: CC0-1.0\n>>   \n>> -proxy_install_dir = join_paths(get_option('libexecdir'), 'libcamera')\n>> +proxy_install_dir = get_option('libexecdir') / 'libcamera'\n>>   \n>>   # generate {pipeline}_ipa_proxy_worker.cpp\n>>   foreach mojom : ipa_mojoms\n>> @@ -25,4 +25,4 @@ foreach mojom : ipa_mojoms\n>>   endforeach\n>>   \n>>   config_h.set('IPA_PROXY_DIR',\n> Ohh another one to add to my paths summary perhaps ...\n>\n>> -             '\"' + join_paths(get_option('prefix'), proxy_install_dir) + '\"')\n>> +             '\"' + get_option('prefix') / proxy_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 9790DBDE48\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 30 Apr 2021 12:40:50 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E44C168901;\n\tFri, 30 Apr 2021 14:40:49 +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 8D66F688A5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 30 Apr 2021 14:40:48 +0200 (CEST)","from localhost.localdomain (unknown [103.251.226.128])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3EF1F1027;\n\tFri, 30 Apr 2021 14:40:46 +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=\"ZoFHbiBP\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1619786448;\n\tbh=XKYCATpElNP91zwCpYPJIJoIgoLQ8VX/pWCPpwr/bR8=;\n\th=Subject:To:References:From:Date:In-Reply-To:From;\n\tb=ZoFHbiBPsMGtgZ1BDJGzloXYWHy9fqB7MwA1WhEOnWBw9hxpqPKK4DdBAjGt5aKLP\n\ts20YOMqDmgbhkGNFwh85SuKYgMZ9PjxlygAX8u1MbHrV0XrghrVBJRp39ZFtnyY+fr\n\t2uLwfrxZUjuWRJgQgxDRmssPSfNrHkLG7Pc5XxVg=","To":"kieran.bingham@ideasonboard.com, libcamera-devel@lists.libcamera.org","References":"<20210430114331.151018-1-umang.jain@ideasonboard.com>\n\t<20210430114331.151018-2-umang.jain@ideasonboard.com>\n\t<1aed3a75-427d-f584-d651-0172aced446a@ideasonboard.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<05d540c4-e231-a724-fbdf-8a3be9e8df24@ideasonboard.com>","Date":"Fri, 30 Apr 2021 18:10:41 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.11.0","MIME-Version":"1.0","In-Reply-To":"<1aed3a75-427d-f584-d651-0172aced446a@ideasonboard.com>","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH v1 1/3] meson: Replace obselete\n\tjoin_paths() with '/' operator","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>","Content-Transfer-Encoding":"7bit","Content-Type":"text/plain; charset=\"us-ascii\"; Format=\"flowed\"","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]