Skip to content

Commit

Permalink
libcamera-apps: switch from CMake to meson
Browse files Browse the repository at this point in the history
CMake is removed in upstream libcamera-apps as of 9e17265,
thus switch to meson to build the package from now on.

Add PACKAGECONFIG entries and neon flags matching the settings
project meson.build as described in the official documentation
https://www.raspberrypi.com/documentation/computers/camera_software.html#building-libcamera-apps

Default to "drm" for PACKAGECONFIG as it is the only option enabled
in both recommended meson setup for Raspberry Pi OS and Raspberry Pi
OS Lite.

Signed-off-by: Vivien Didelot <[email protected]>
  • Loading branch information
vivien authored and agherzan committed Aug 8, 2023
1 parent 9d9f98d commit 5f9423e
Showing 1 changed file with 15 additions and 19 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
SUMMARY = "A suite of libcamera-based apps for the Raspberry Pi"
SUMMARY = "A suite of libcamera-based apps"
DESCRIPTION = "This is a small suite of libcamera-based apps that aim to \
copy the functionality of the existing \"raspicam\" apps."
HOMEPAGE = "https://github.com/raspberrypi/libcamera-apps"
Expand All @@ -18,27 +18,23 @@ S = "${WORKDIR}/git"

DEPENDS = "libcamera libexif jpeg tiff libpng boost"

inherit cmake pkgconfig
PACKAGECONFIG ??= "drm"
PACKAGECONFIG[libav] = "-Denable_libav=true, -Denable_libav=false, libav"
PACKAGECONFIG[drm] = "-Denable_drm=true, -Denable_drm=false, libdrm"
PACKAGECONFIG[egl] = "-Denable_egl=true, -Denable_egl=false, virtual/egl"
PACKAGECONFIG[qt] = "-Denable_qt=true, -Denable_qt=false, qtbase"
PACKAGECONFIG[opencv] = "-Denable_opencv=true, -Denable_opencv=false, opencv"
PACKAGECONFIG[tflite] = "-Denable_tflite=true, -Denable_tflite=false, tensorflow-lite"

EXTRA_OECMAKE = "\
-DCMAKE_BUILD_TYPE=Release \
-DBoost_INCLUDE_DIR=${STAGING_INCDIR} \
-DCMAKE_LIBRARY_PATH=${STAGING_LIBDIR} \
"

LIBCAMERA_ARCH = "${TARGET_ARCH}"
LIBCAMERA_ARCH:aarch64 = "arm64"
LIBCAMERA_ARCH:arm:raspberrypi3 = "armv8-neon"
LIBCAMERA_ARCH:arm:raspberrypi4 = "armv8-neon"
EXTRA_OECMAKE += "-DENABLE_COMPILE_FLAGS_FOR_TARGET=${LIBCAMERA_ARCH}"
inherit meson pkgconfig

PACKAGECONFIG[drm] = "-DENABLE_DRM=1,-DENABLE_DRM=0,libdrm"
PACKAGECONFIG[x11] = "-DENABLE_X11=1,-DENABLE_X11=0"
PACKAGECONFIG[qt] = "-DENABLE_QT=1,-DENABLE_QT=0"
PACKAGECONFIG[opencv] = "-DENABLE_OPENCV=1,-DENABLE_OPENCV=0,opencv"
PACKAGECONFIG[tflite] = "-DENABLE_TFLITE=1,-DENABLE_TFLITE=0,tensorflow-lite"
NEON_FLAGS = ""
NEON_FLAGS:aarch64 = "-Dneon_flags=arm64"
NEON_FLAGS:arm:raspberrypi3 = "-Dneon_flags=armv8-neon"
NEON_FLAGS:arm:raspberrypi4 = "-Dneon_flags=armv8-neon"
EXTRA_OEMESON += "${NEON_FLAGS}"

# QA Issue: /usr/bin/camera-bug-report contained in package libcamera-apps requires /usr/bin/python3
do_install:append() {
# Requires python3-core which not all systems may have
rm -v ${D}/${bindir}/camera-bug-report
}

0 comments on commit 5f9423e

Please sign in to comment.