kumquat-buildroot/package/libcamera/libcamera.mk

108 lines
3.0 KiB
Makefile
Raw Normal View History

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
################################################################################
#
# libcamera
#
################################################################################
LIBCAMERA_SITE = https://git.linuxtv.org/libcamera.git
LIBCAMERA_VERSION = 1966b9a58436fab51f8270aad6a228b935e4fac4
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
LIBCAMERA_SITE_METHOD = git
LIBCAMERA_DEPENDENCIES = \
host-openssl \
host-pkgconf \
host-python-jinja2 \
host-python-ply \
host-python-pyyaml \
gnutls
LIBCAMERA_CONF_OPTS = \
-Dandroid=disabled \
-Ddocumentation=disabled \
-Dtest=false \
-Dwerror=false
LIBCAMERA_INSTALL_STAGING = YES
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)
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
LIBCAMERA_LICENSE_FILES = \
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
ifeq ($(BR2_TOOLCHAIN_GCC_AT_LEAST_7),y)
LIBCAMERA_CXXFLAGS = -faligned-new
endif
ifeq ($(BR2_PACKAGE_LIBCAMERA_V4L2),y)
LIBCAMERA_CONF_OPTS += -Dv4l2=true
else
LIBCAMERA_CONF_OPTS += -Dv4l2=false
endif
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))
ifeq ($(BR2_PACKAGE_LIBCAMERA_COMPLIANCE),y)
LIBCAMERA_DEPENDENCIES += gtest libevent
LIBCAMERA_CONF_OPTS += -Dlc-compliance=enabled
else
LIBCAMERA_CONF_OPTS += -Dlc-compliance=disabled
endif
# 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_CONF_OPTS += -Dqcam=enabled
LIBCAMERA_DEPENDENCIES += qt5base
ifeq ($(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),y)
LIBCAMERA_DEPENDENCIES += qt5tools
endif
else
LIBCAMERA_CONF_OPTS += -Dqcam=disabled
endif
ifeq ($(BR2_PACKAGE_TIFF),y)
LIBCAMERA_DEPENDENCIES += tiff
endif
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
LIBCAMERA_DEPENDENCIES += udev
endif
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
ifeq ($(BR2_PACKAGE_LTTNG_LIBUST),y)
LIBCAMERA_CONF_OPTS += -Dtracing=enabled
LIBCAMERA_DEPENDENCIES += lttng-libust
else
LIBCAMERA_CONF_OPTS += -Dtracing=disabled
endif
ifeq ($(BR2_PACKAGE_LIBEXECINFO),y)
LIBCAMERA_DEPENDENCIES += libexecinfo
LIBCAMERA_LDFLAGS = $(TARGET_LDFLAGS) -lexecinfo
endif
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
$(eval $(meson-package))