config BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS
	bool
	default y
	# Invalid packing size of ControlValue struct on m68k
	depends on !BR2_m68k

menuconfig BR2_PACKAGE_LIBCAMERA
	bool "libcamera"
	depends on BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS
	depends on BR2_INSTALL_LIBSTDCPP
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17
	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
	  processing operations.

	  http://www.libcamera.org/

if BR2_PACKAGE_LIBCAMERA

config BR2_PACKAGE_LIBCAMERA_V4L2
	bool "libcamera v4l2 compatibility layer"
	help
	  libcamera v4l2 compatibility layer

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 >= 7"
	depends on BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
		!BR2_TOOLCHAIN_GCC_AT_LEAST_7 || BR2_STATIC_LIBS || !BR2_USE_WCHAR
