6b1f3de47d
The hardware related pipelines are obviously not available on other
architectures.
As suggested by upstream [0], add a dependency on arm or aarch64 for
RaspberryPi pipeline, to avoid the following build failure with a
powerpc64 toolchain since commit c09f126f57
(package/libcamera: bump
to version e355ca0087cd93ef80f74c61018e9e9228a93313):
In file included from ../include/libcamera/base/log.h:10,
from ../src/ipa/raspberrypi/raspberrypi.cpp:18:
../src/ipa/raspberrypi/raspberrypi.cpp:64:53: in 'constexpr' expansion of 'std::chrono::operator/<long double, std::ratio<1>, double>(std::literals::chrono_literals::operator""s(1.0e+0l), 3.0e+1)'
/home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/powerpc64-buildroot-linux-gnu/include/c++/9.3.0/chrono:502:32: error: '(1.0e+0l / 3.0e+1)' is not a constant expression
502 | return __cd(__cd(__d).count() / __s);
../src/ipa/raspberrypi/raspberrypi.cpp:73:56: in 'constexpr' expansion of 'std::chrono::operator/<long double, std::ratio<1>, double>(std::literals::chrono_literals::operator""s(1.0e+0l), 6.0e+1)'
/home/buildroot/autobuild/instance-2/output-1/host/opt/ext-toolchain/powerpc64-buildroot-linux-gnu/include/c++/9.3.0/chrono:502:32: error: '(1.0e+0l / 6.0e+1)' is not a constant expression
Fixes:
- http://autobuild.buildroot.org/results/49caebe7ef7e3d63de49e78d5d6839dd0aedf10c
Additionally, as Kieran puts it:
I'd go further and filter the IPU3 on only x86 for instance, and the
RKISP on (arm||aarch64).
So be it.
[0] https://lists.libcamera.org/pipermail/libcamera-devel/2021-October/025796.html:
Suggested-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Suggested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[yann.morin.1998@free.fr: abide by Kieran's wish]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
81 lines
2.3 KiB
Plaintext
81 lines
2.3 KiB
Plaintext
config BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS
|
|
bool
|
|
default y
|
|
# Invalid packing size of ControlValue struct on m68k
|
|
depends on !BR2_m68k
|
|
depends on !BR2_TOOLCHAIN_HAS_BINUTILS_BUG_27597
|
|
|
|
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"
|
|
depends on BR2_i386 || BR2_x86_64
|
|
select BR2_PACKAGE_LIBCAMERA_HAS_PIPELINE
|
|
help
|
|
Pipeline for Intel IPU3.
|
|
|
|
config BR2_PACKAGE_LIBCAMERA_PIPELINE_RASPBERRYPI
|
|
bool "raspberrypi pipeline"
|
|
depends on BR2_arm || BR2_aarch64
|
|
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"
|
|
depends on BR2_arm || BR2_aarch64
|
|
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
|