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 committed Aug 3, 2023
1 parent ffc5345 commit 76263ba
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 76263ba

Please sign in to comment.