upgpkg: maxima 5.46.0-9 (sbcl rebuild)
[arch-packages.git] / libcamera / trunk / PKGBUILD
blob734d44895c03f097ebff455990b60976a5266e56
1 # Maintainer: David Runge <dvzrv@archlinux.org>
3 pkgbase=libcamera
4 pkgname=(
5   libcamera
6   libcamera-docs
7   libcamera-ipa
8   libcamera-tools
9   gst-plugin-libcamera
11 pkgver=0.0.4
12 _commit=6a57d964abdb3f24608c0fc2839d96e02eebddeb  # refs/tags/v0.0.4
13 pkgrel=3
14 pkgdesc="A complex camera support library for Linux, Android, and ChromeOS"
15 arch=(x86_64)
16 url="https://libcamera.org/"
17 license=(LGPL2.1 GPL2)
18 depends=(glibc)
19 makedepends=(
20   doxygen
21   git
22   glib2
23   graphviz
24   gst-plugins-base
25   gtest
26   libdrm
27   libjpeg-turbo
28   libtiff
29   libyaml
30   meson
31   python-jinja
32   python-ply
33   python-sphinx
34   python-pyyaml
35   qt5-base
36   qt5-tools
37   sdl2
38   systemd
39   texlive-core
41 source=(git+https://git.libcamera.org/$pkgname/$pkgname.git#tag=$_commit)
42 sha256sums=('SKIP')
44 _pick() {
45   local p="$1" f d; shift
46   for f; do
47     d="$srcdir/$p/${f#$pkgdir/}"
48     mkdir -p "$(dirname "$d")"
49     mv "$f" "$d"
50     rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
51   done
54 prepare() {
55   cd $pkgname
56   # add version, so that utils/gen-version.sh may rely on it
57   printf "%s\n" "$pkgver" > .tarball-version
60 build() {
61   local meson_options=(
62     -D v4l2=true
63     -D tracing=disabled
64     -D test=true
65   )
67   arch-meson $pkgname build "${meson_options[@]}"
68   meson compile -C build
71 check() {
72   meson test -C build || echo "Tests require CLONE_NEWUSER/ CLONE_NEWNET."
75 package_libcamera() {
76   depends=(
77     gcc-libs
78     glibc
79     gnutls
80     libcamera-ipa
81     libelf
82     libunwind
83     libyaml
84     sh
85     systemd-libs libudev.so
86   )
87   optdepends=(
88     'gst-plugin-libcamera: GStreamer plugin'
89     'libcamera-docs: for documentation'
90     'libcamera-tools: for applications'
91   )
92   provides=(libcamera.so libcamera-base.so)
94   meson install -C build --destdir "$pkgdir"
96   (
97     cd "$pkgdir"
98     _pick $pkgbase-docs usr/share/doc
99     _pick $pkgbase-ipa usr/lib/libcamera/
100     _pick $pkgbase-tools usr/bin/{cam,qcam,lc-compliance}
101     _pick gst-plugin-$pkgbase usr/lib/gstreamer-*
102   )
105 package_libcamera-docs() {
106   pkgdesc+=" - documentation"
108   mv -v $pkgname/* "$pkgdir"
109   mv -v "$pkgdir/usr/share/doc/$pkgbase-$pkgver/" "$pkgdir/usr/share/doc/$pkgbase/"
110   rm -frv "$pkgdir/usr/share/doc/$pkgbase/html/.buildinfo"
113 package_libcamera-ipa() {
114   pkgdesc+=" - signed IPA"
115   depends=(
116     gcc-libs
117     glibc
118     libcamera libcamera.so libcamera-base.so
119   )
120   # stripping requires re-signing of IPA libs, so we do it manually
121   options=(!strip)
123   strip $pkgname/usr/lib/libcamera/*{.so,proxy}
124   for _lib in $pkgname/usr/lib/libcamera/*.so; do
125     $pkgbase/src/ipa/ipa-sign.sh "$(find build -type f -iname "*ipa-priv-key.pem")" "$_lib" "$_lib.sign"
126   done
127   mv -v $pkgname/* "$pkgdir"
130 package_libcamera-tools() {
131   pkgdesc+=" - tools"
132   depends=(
133     gcc-libs
134     glibc
135     gtest
136     libcamera libcamera.so libcamera-base.so
137     libdrm
138     libevent libevent-2.1.so libevent_pthreads-2.1.so
139     libjpeg-turbo libjpeg.so
140     libtiff libtiff.so
141     libyaml
142     qt5-base
143     sdl2
144   )
145   conflicts=("$pkgbase-tests<0.0.1-2")
146   replaces=("$pkgbase-tests<0.0.1-2")
148   mv -v $pkgname/* "$pkgdir"
151 package_gst-plugin-libcamera() {
152   pkgdesc="Multimedia graph framework - libcamera plugin"
153   depends=(
154     gcc-libs
155     glibc
156     glib2 libg{lib,object}-2.0.so
157     gstreamer
158     gst-plugins-base-libs
159     libcamera libcamera.so libcamera-base.so
160   )
162   mv -v $pkgname/* "$pkgdir"