-config BR2_PACKAGE_LIBCAMERA
+menuconfig BR2_PACKAGE_LIBCAMERA
bool "libcamera"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
- # C++11 + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
- depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5
- depends on BR2_PACKAGE_HAS_UDEV
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_5 # C++14
+ depends on !BR2_STATIC_LIBS # gnutls
+ depends on BR2_USE_WCHAR # gnutls
+ select BR2_PACKAGE_GNUTLS
+ select BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO if !BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
help
libcamera provides a software stack to support
complex devices that need heavy hardware image
http://www.libcamera.org/
-comment "libcamera needs udev and a toolchain w/ C++, threads, gcc >= 5"
+if BR2_PACKAGE_LIBCAMERA
+
+config BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ bool
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3
+ bool "ipu3 pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for Intel IPU3.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI
+ bool "raspberrypi pipeline"
+ depends on BR2_USE_WCHAR # boost (already enforced for gnutls)
+ select BR2_PACKAGE_BOOST
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for Raspberry Pi devices.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1
+ bool "rkisp1 pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for Rockchip ISP1.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE
+ bool "simple pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for simple pipelines.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO
+ bool "uvcvideo pipeline"
+ help
+ Pipeline for uvcvideo devices.
+
+config BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC
+ bool "vimc pipeline"
+ select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
+ help
+ Pipeline for the vimc device.
+
+endif # BR2_PACKAGE_LIBCAMERA
+
+comment "libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 5"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
- !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || !BR2_PACKAGE_HAS_UDEV
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_5 || BR2_STATIC_LIBS || !BR2_USE_WCHAR
-sha256 cbaa7e06059717f71b57f9c20135c86d5f121d9aab10bfc20513ba5d04478756 libcamera-448393f77ec9e37cb807e8e8d35c1a4877d253d4.tar.gz
-sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 licenses/gnu-gpl-2.0.txt
-sha256 592987e8510228d546540b84a22444bde98e48d03078d3b2eefcd889bec5ce8c licenses/gnu-lgpl-2.1.txt
+sha256 6995be9d707ba3bcbe7a79bad894484561ee686f68b6523943ada7c0f6607e86 libcamera-96fab38e02792a109c0d35ca2154e95a7b4c8fcb.tar.gz
+
+# license files
+sha256 fd38b2c053c0cce46d9c5ef3545a6e34d157a240ba99c9b8dca5d37a8147da6c LICENSES/BSD-2-Clause.txt
+sha256 e11af671c491efac2f94c1d752bea92f4308ca2450c7d11e582e4b48c40e4de1 LICENSES/BSD-3-Clause.txt
+sha256 6a573fb2f9082662978cf21fb153096df0a1981deaea7dbc10a11046fe005d9f LICENSES/CC0-1.0.txt
+sha256 ec3732087acf8c52429a020d6bba362ff578705bdb53365a21744485ec15b0e6 LICENSES/CC-BY-SA-4.0.txt
+sha256 8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643 LICENSES/GPL-2.0-only.txt
+sha256 606aa26338f69ce178f1cbc648b7574aec4b5bbaeb20f4df36ff49010cb8fbbd LICENSES/GPL-2.0-or-later.txt
+sha256 1ccf09bf2f598308df4bed9cd8e9657dc5cd0973d2800318f2e241486e2edf3f LICENSES/LGPL-2.1-or-later.txt
+sha256 3f9e477523febab58de8b716ccfbcf02e6ef1c8e7728953905e8558637abe2a9 LICENSES/Linux-syscall-note.txt
+sha256 8f25018489d6fe0dec34a352314c38dc146247b7de65735790f4398a92afa84b LICENSES/MIT.txt
################################################################################
LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git
-LIBCAMERA_VERSION = 448393f77ec9e37cb807e8e8d35c1a4877d253d4
+LIBCAMERA_VERSION = 96fab38e02792a109c0d35ca2154e95a7b4c8fcb
LIBCAMERA_SITE_METHOD = git
-LIBCAMERA_DEPENDENCIES = udev
-LIBCAMERA_CONF_OPTS = -Dtest=false -Ddocumentation=false
+LIBCAMERA_DEPENDENCIES = \
+ host-openssl \
+ host-pkgconf \
+ host-python3-pyyaml \
+ gnutls
+LIBCAMERA_CONF_OPTS = \
+ -Dandroid=false \
+ -Ddocumentation=false \
+ -Dtest=false \
+ -Dv4l2=false
LIBCAMERA_INSTALL_STAGING = yes
-LIBCAMERA_LICENSE = LGPL-2.1+ (library), GPL-2.0+ (utils)
+LIBCAMERA_LICENSE = \
+ LGPL-2.1+ (library), \
+ GPL-2.0+ (utils), \
+ MIT (qcam/assets/feathericons), \
+ BSD-2-Clause (raspberrypi), \
+ GPL-2.0 with Linux-syscall-note or BSD-3-Clause (linux kernel headers), \
+ CC0-1.0 (meson build system), \
+ CC-BY-SA-4.0 (doc)
LIBCAMERA_LICENSE_FILES = \
- licenses/gnu-gpl-2.0.txt \
- licenses/gnu-lgpl-2.1.txt
+ LICENSES/LGPL-2.1-or-later.txt \
+ LICENSES/GPL-2.0-or-later.txt \
+ LICENSES/MIT.txt \
+ LICENSES/BSD-2-Clause.txt \
+ LICENSES/GPL-2.0-only.txt \
+ LICENSES/Linux-syscall-note.txt \
+ LICENSES/BSD-3-Clause.txt \
+ LICENSES/CC0-1.0.txt \
+ LICENSES/CC-BY-SA-4.0.txt
+
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_IPU3) += ipu3
+ifeq ($(BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI),y)
+LIBCAMERA_PIPELINES-y += raspberrypi
+LIBCAMERA_DEPENDENCIES += boost
+endif
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_RKISP1) += rkisp1
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE) += simple
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO) += uvcvideo
+LIBCAMERA_PIPELINES-$(BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC) += vimc
+
+LIBCAMERA_CONF_OPTS += -Dpipelines=$(subst $(space),$(comma),$(LIBCAMERA_PIPELINES-y))
+
+# gstreamer-video-1.0, gstreamer-allocators-1.0
+ifeq ($(BR2_PACKAGE_GSTREAMER1)$(BR2_PACKAGE_GST1_PLUGINS_BASE),yy)
+LIBCAMERA_CONF_OPTS += -Dgstreamer=enabled
+LIBCAMERA_DEPENDENCIES += gstreamer1 gst1-plugins-base
+endif
+
+ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
+LIBCAMERA_DEPENDENCIES += qt5base
+ifeq ($(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),y)
+LIBCAMERA_DEPENDENCIES += qt5tools
+endif
+endif
+
+ifeq ($(BR2_PACKAGE_TIFF),y)
+LIBCAMERA_DEPENDENCIES += tiff
+endif
+
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+LIBCAMERA_DEPENDENCIES += udev
+endif
$(eval $(meson-package))