[{"id":14774,"web_url":"https://patchwork.libcamera.org/comment/14774/","msgid":"<YA/TcKhbGrsDWYjv@pendragon.ideasonboard.com>","date":"2021-01-26T08:31:44","subject":"Re: [libcamera-devel] [PATCH v2] subprojects: Add libyuv and built\n\tif -Dandroid=enabled","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Hiro,\n\nThank you for the patch.\n\nOn Tue, Jan 26, 2021 at 08:26:28AM +0000, Hirokazu Honda wrote:\n> Android HAL adaptation layer may need image processing, for\n> example, scaling and format conversion. Libyuv is a general image\n> processing. This adds libyuv to subprojects, so that it is folked\n\ns/folked/forked/ ?\n\n> locally and can be used with Android HAL implementation code.\n> \n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> ---\n>  README.rst              |  2 +-\n>  meson.build             |  2 +-\n>  src/android/meson.build | 18 ++++++++++++++++++\n>  subprojects/.gitignore  |  1 +\n>  subprojects/libyuv.wrap |  4 ++++\n>  5 files changed, 25 insertions(+), 2 deletions(-)\n>  create mode 100644 subprojects/.gitignore\n>  create mode 100644 subprojects/libyuv.wrap\n> \n> diff --git a/README.rst b/README.rst\n> index 251291b7..08bfd5ad 100644\n> --- a/README.rst\n> +++ b/README.rst\n> @@ -47,7 +47,7 @@ A C++ toolchain: [required]\n>  \tEither {g++, clang}\n> \n>  Meson Build system: [required]\n> -        meson (>= 0.51) ninja-build pkg-config\n> +        meson (>= 0.55) ninja-build pkg-config\n> \n>          If your distribution doesn't provide a recent enough version of meson,\n>          you can install or upgrade it using pip3.\n> diff --git a/meson.build b/meson.build\n> index c47eb420..d9b63278 100644\n> --- a/meson.build\n> +++ b/meson.build\n> @@ -1,7 +1,7 @@\n>  # SPDX-License-Identifier: CC0-1.0\n> \n>  project('libcamera', 'c', 'cpp',\n> -    meson_version : '>= 0.51',\n> +    meson_version : '>= 0.55',\n>      version : '0.0.0',\n>      default_options : [\n>          'werror=true',\n> diff --git a/src/android/meson.build b/src/android/meson.build\n> index 3d4d3be4..e1533d7c 100644\n> --- a/src/android/meson.build\n> +++ b/src/android/meson.build\n> @@ -14,6 +14,24 @@ foreach dep : android_deps\n>      endif\n>  endforeach\n> \n> +if android_enabled\n> +    cmake = import('cmake')\n> +\n> +    libyuv_vars = cmake.subproject_options()\n> +    libyuv_vars.add_cmake_defines({'CMAKE_POSITION_INDEPENDENT_CODE': 'ON'})\n> +    libyuv_vars.set_override_option('cpp_std', 'c++17')\n> +    libyuv_vars.append_compile_args('cpp',\n> +         '-Wno-sign-compare',\n> +         '-Wno-unused-variable',\n> +         '-Wno-unused-parameter')\n> +    libyuv_vars.append_link_args('-ljpeg')\n> +    libyuv = cmake.subproject('libyuv', options : libyuv_vars)\n> +    libyuv_dep = libyuv.dependency('yuv')\n> +\n> +    android_deps += [ libyuv_dep, ]\n> +endif\n> +\n> +\n\nOne blank line is enough.\n\nI'll address these small issues when applying, there's no need to send a\nnew version.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nI will apply the patch along with the series that uses libyuv in the\nAndroid HAL (which I'm going to review now).\n\n>  android_hal_sources = files([\n>      'camera3_hal.cpp',\n>      'camera_hal_manager.cpp',\n> diff --git a/subprojects/.gitignore b/subprojects/.gitignore\n> new file mode 100644\n> index 00000000..410b8bd6\n> --- /dev/null\n> +++ b/subprojects/.gitignore\n> @@ -0,0 +1 @@\n> +/libyuv\n> \\ No newline at end of file\n> diff --git a/subprojects/libyuv.wrap b/subprojects/libyuv.wrap\n> new file mode 100644\n> index 00000000..8ba51fa0\n> --- /dev/null\n> +++ b/subprojects/libyuv.wrap\n> @@ -0,0 +1,4 @@\n> +[wrap-git]\n> +directory = libyuv\n> +url = https://chromium.googlesource.com/libyuv/libyuv.git\n> +revision = 93b1b332cd60b56ab90aea14182755e379c28a80","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 F0042C0F2B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Jan 2021 08:32:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 61DF1682EE;\n\tTue, 26 Jan 2021 09:32:05 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 23E59682E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Jan 2021 09:32:04 +0100 (CET)","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 845388B5;\n\tTue, 26 Jan 2021 09:32:03 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"loyyp5Wr\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1611649923;\n\tbh=s0lk9+LUI2jBj0UvF1lnwXpvqoGnnkHuAntJ0BWksL8=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=loyyp5Wr84G5STJrinQZX21ESyomPPLWpPwt2nKU3CYmDHzKaV9ZNR5KyQADD26vE\n\t6b6LgagZ644Cx2Ejxczbx03ISQUrtm/bWFHrtiDAjHTxoAN7cZzaIC0aXr558hqeyd\n\tuuvYYR7iPjKZmyT9ZAEdSwGjhGht2GkOAhmiVXR8=","Date":"Tue, 26 Jan 2021 10:31:44 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<YA/TcKhbGrsDWYjv@pendragon.ideasonboard.com>","References":"<20210126082628.1902267-1-hiroh@chromium.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210126082628.1902267-1-hiroh@chromium.org>","Subject":"Re: [libcamera-devel] [PATCH v2] subprojects: Add libyuv and built\n\tif -Dandroid=enabled","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Cc":"libcamera-devel@lists.libcamera.org","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>"}}]