kumquat-buildroot/package/libcamera/Config.in

99 lines
2.9 KiB
Plaintext
Raw Normal View History

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
package/libcamera: new package http://libcamera.org/ Cameras are complex devices that need heavy hardware image processing operations. Control of the processing is based on advanced algorithms that must run on a programmable processor. This has traditionally been implemented in a dedicated MCU in the camera, but in embedded devices algorithms have been moved to the main CPU to save cost. Blurring the boundary between camera devices and Linux often left the user with no other option than a vendor-specific closed-source solution. To address this problem the Linux media community has very recently started collaboration with the industry to develop a camera stack that will be open-source-friendly while still protecting vendor core IP. libcamera was born out of that collaboration and will offer modern camera support to Linux-based systems, including traditional Linux distributions, ChromeOS and Android. The project has not made an official release as of yet, so we're using the latest sha1 from master We utilise C++ 11 but we mandate GCC5+ due to a bug [0] in earlier versions which result in compile failures on our code base. [0] Bug 54316 - [C++11] move constructor for stringstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316 Documentation and Tests are disabled from the build. With the following added to libcamera.config: BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_PACKAGE_LIBCAMERA=y ./utils/test-pkg -c libcamera.config -p libcamera br-arm-full [1/6]: SKIPPED br-arm-cortex-a9-glibc [2/6]: OK br-arm-cortex-m4-full [3/6]: SKIPPED br-x86-64-musl [4/6]: OK br-arm-full-static [5/6]: SKIPPED sourcery-arm [6/6]: SKIPPED Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: - add missing Config.in comment - remove empty newline at end of hash file - adjust indentation of upstream URL in Config.in help text] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-04-03 13:29:02 +02:00
bool "libcamera"
depends on BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS
package/libcamera: new package http://libcamera.org/ Cameras are complex devices that need heavy hardware image processing operations. Control of the processing is based on advanced algorithms that must run on a programmable processor. This has traditionally been implemented in a dedicated MCU in the camera, but in embedded devices algorithms have been moved to the main CPU to save cost. Blurring the boundary between camera devices and Linux often left the user with no other option than a vendor-specific closed-source solution. To address this problem the Linux media community has very recently started collaboration with the industry to develop a camera stack that will be open-source-friendly while still protecting vendor core IP. libcamera was born out of that collaboration and will offer modern camera support to Linux-based systems, including traditional Linux distributions, ChromeOS and Android. The project has not made an official release as of yet, so we're using the latest sha1 from master We utilise C++ 11 but we mandate GCC5+ due to a bug [0] in earlier versions which result in compile failures on our code base. [0] Bug 54316 - [C++11] move constructor for stringstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316 Documentation and Tests are disabled from the build. With the following added to libcamera.config: BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_PACKAGE_LIBCAMERA=y ./utils/test-pkg -c libcamera.config -p libcamera br-arm-full [1/6]: SKIPPED br-arm-cortex-a9-glibc [2/6]: OK br-arm-cortex-m4-full [3/6]: SKIPPED br-x86-64-musl [4/6]: OK br-arm-full-static [5/6]: SKIPPED sourcery-arm [6/6]: SKIPPED Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: - add missing Config.in comment - remove empty newline at end of hash file - adjust indentation of upstream URL in Config.in help text] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-04-03 13:29:02 +02:00
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
package/libcamera: new package http://libcamera.org/ Cameras are complex devices that need heavy hardware image processing operations. Control of the processing is based on advanced algorithms that must run on a programmable processor. This has traditionally been implemented in a dedicated MCU in the camera, but in embedded devices algorithms have been moved to the main CPU to save cost. Blurring the boundary between camera devices and Linux often left the user with no other option than a vendor-specific closed-source solution. To address this problem the Linux media community has very recently started collaboration with the industry to develop a camera stack that will be open-source-friendly while still protecting vendor core IP. libcamera was born out of that collaboration and will offer modern camera support to Linux-based systems, including traditional Linux distributions, ChromeOS and Android. The project has not made an official release as of yet, so we're using the latest sha1 from master We utilise C++ 11 but we mandate GCC5+ due to a bug [0] in earlier versions which result in compile failures on our code base. [0] Bug 54316 - [C++11] move constructor for stringstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316 Documentation and Tests are disabled from the build. With the following added to libcamera.config: BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_PACKAGE_LIBCAMERA=y ./utils/test-pkg -c libcamera.config -p libcamera br-arm-full [1/6]: SKIPPED br-arm-cortex-a9-glibc [2/6]: OK br-arm-cortex-m4-full [3/6]: SKIPPED br-x86-64-musl [4/6]: OK br-arm-full-static [5/6]: SKIPPED sourcery-arm [6/6]: SKIPPED Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: - add missing Config.in comment - remove empty newline at end of hash file - adjust indentation of upstream URL in Config.in help text] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-04-03 13:29:02 +02:00
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"
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 c09f126f5703 (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-15 20:31:13 +02:00
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"
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 c09f126f5703 (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-15 20:31:13 +02:00
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"
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 c09f126f5703 (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-15 20:31:13 +02:00
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.
config BR2_PACKAGE_LIBCAMERA_COMPLIANCE
bool "lc-compliance test application"
depends on BR2_USE_WCHAR # gtest
depends on BR2_TOOLCHAIN_HAS_THREADS # gtest
depends on BR2_INSTALL_LIBSTDCPP # gtest
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # gtest
depends on BR2_USE_MMU # gtest
select BR2_PACKAGE_GTEST
select BR2_PACKAGE_LIBEVENT
help
lc-compliance test application
comment "lc-compliance test application needs a toolchain w/ C++, wchar, threads, gcc >= 4.9"
depends on BR2_USE_MMU
depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
endif # BR2_PACKAGE_LIBCAMERA
comment "libcamera needs a toolchain w/ C++, threads, wchar, dynamic library, gcc >= 7"
depends on BR2_PACKAGE_LIBCAMERA_ARCH_SUPPORTS
package/libcamera: new package http://libcamera.org/ Cameras are complex devices that need heavy hardware image processing operations. Control of the processing is based on advanced algorithms that must run on a programmable processor. This has traditionally been implemented in a dedicated MCU in the camera, but in embedded devices algorithms have been moved to the main CPU to save cost. Blurring the boundary between camera devices and Linux often left the user with no other option than a vendor-specific closed-source solution. To address this problem the Linux media community has very recently started collaboration with the industry to develop a camera stack that will be open-source-friendly while still protecting vendor core IP. libcamera was born out of that collaboration and will offer modern camera support to Linux-based systems, including traditional Linux distributions, ChromeOS and Android. The project has not made an official release as of yet, so we're using the latest sha1 from master We utilise C++ 11 but we mandate GCC5+ due to a bug [0] in earlier versions which result in compile failures on our code base. [0] Bug 54316 - [C++11] move constructor for stringstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316 Documentation and Tests are disabled from the build. With the following added to libcamera.config: BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_PACKAGE_LIBCAMERA=y ./utils/test-pkg -c libcamera.config -p libcamera br-arm-full [1/6]: SKIPPED br-arm-cortex-a9-glibc [2/6]: OK br-arm-cortex-m4-full [3/6]: SKIPPED br-x86-64-musl [4/6]: OK br-arm-full-static [5/6]: SKIPPED sourcery-arm [6/6]: SKIPPED Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> [Thomas: - add missing Config.in comment - remove empty newline at end of hash file - adjust indentation of upstream URL in Config.in help text] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-04-03 13:29:02 +02:00
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_7 || BR2_STATIC_LIBS || !BR2_USE_WCHAR