kumquat-buildroot/package/libcamera/Config.in
Fabrice Fontaine 6b1f3de47d package/libcamera: add arch dependency to hardware pipelines
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>
2021-10-16 09:14:36 +02:00

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