meta-pipewire: initial pipewire recipe
[AGL/meta-agl-devel.git] / meta-pipewire / recipes-multimedia / pipewire / pipewire.inc
1 SUMMARY     = "Multimedia processing server for Linux"
2 HOMEPAGE    = "https://pipewire.org"
3 BUGTRACKER  = "https://github.com/PipeWire/pipewire/issues"
4 AUTHOR      = "Wim Taymans <wtaymans@redhat.com>"
5 SECTION     = "multimedia"
6
7 LICENSE = "MIT & LGPL-2.1"
8 LIC_FILES_CHKSUM = "\
9     file://COPYING;beginline=3;md5=b3adc775ca6ee80056383a5ae814cc75 \
10     file://pipewire-alsa/LICENSE;md5=fc178bcd425090939a8b634d1d6a9594 \
11     file://pipewire-jack/LICENSE;md5=fc178bcd425090939a8b634d1d6a9594 \
12     file://pipewire-pulseaudio/LICENSE;md5=fc178bcd425090939a8b634d1d6a9594 \
13 "
14
15 inherit meson pkgconfig systemd manpages
16
17 DEPENDS = "dbus"
18
19 PACKAGECONFIG ??= "\
20     ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
21     alsa audioconvert \
22     pipewire-alsa \
23 "
24
25 GST_VER = "1.0"
26
27 # systemd integration
28 PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
29
30 # SPA plugins
31 PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,udev alsa-lib"
32 PACKAGECONFIG[audioconvert] = "-Daudioconvert=true,-Daudioconvert=false,speexdsp"
33 PACKAGECONFIG[audiotestsrc] = "-Daudiotestsrc=true,-Daudiotestsrc=false, "
34 PACKAGECONFIG[bluez5] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc"
35 PACKAGECONFIG[v4l2] = "-Dv4l2=true,-Dv4l2=false,udev v4l-utils"
36 PACKAGECONFIG[videotestsrc] = "-Dvideotestsrc=true,-Dvideotestsrc=false, "
37
38 # alsa plugin to redirect audio to pipewire
39 PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=true,-Dpipewire-alsa=false,alsa-lib"
40 # pulseaudio drop-in replacement library
41 PACKAGECONFIG[pipewire-pulseaudio] = "-Dpipewire-pulseaudio=true,-Dpipewire-pulseaudio=false,pulseaudio glib-2.0"
42 # jack drop-in replacement library
43 PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=true,-Dpipewire-jack=false,jack"
44
45 # GStreamer plugins
46 PACKAGECONFIG[gstreamer] = "-Dgstreamer=true,-Dgstreamer=false,glib-2.0 gstreamer${GST_VER} gstreamer${GST_VER}-plugins-base"
47
48 # man pages
49 PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native"
50
51 do_install_append() {
52     # if we are distributing our own configuration file,
53     # replace the one installed by pipewire
54     if [ -f ${WORKDIR}/pipewire.conf ]
55     then
56         install -m 0644 ${WORKDIR}/pipewire.conf ${D}${sysconfdir}/pipewire/pipewire.conf
57     fi
58
59     # only install the alsa config file if the alsa-lib plugin has been built
60     # this avoids creating the pipewire-alsa package when the pipewire-alsa
61     # feature is not enabled
62     if [ -d ${D}${libdir}/alsa-lib ]
63     then
64         mkdir -p ${D}${datadir}/alsa/alsa.conf.d
65         install -m 0644 ${S}/pipewire-alsa/conf/50-pipewire.conf ${D}${datadir}/alsa/alsa.conf.d/50-pipewire.conf
66     fi
67 }
68
69 PACKAGES += "\
70     lib${PN} \
71     lib${PN}-modules \
72     ${PN}-spa-plugins \
73     ${PN}-alsa \
74     ${PN}-pulseaudio \
75     ${PN}-jack \
76     gstreamer${GST_VER}-${PN} \
77 "
78
79 FILES_${PN} = "\
80     ${bindir}/pipewire* \
81     ${sysconfdir}/pipewire/pipewire.conf \
82     ${systemd_user_unitdir}/* \
83 "
84 CONFFILES_${PN} += "\
85     ${sysconfdir}/pipewire/pipewire.conf \
86 "
87
88 FILES_lib${PN} = "\
89     ${libdir}/libpipewire-*.so.* \
90 "
91
92 FILES_lib${PN}-modules = "\
93     ${libdir}/pipewire-*/* \
94 "
95
96 FILES_${PN}-spa-plugins = "\
97     ${bindir}/spa-* \
98     ${libdir}/spa/* \
99 "
100
101 FILES_${PN}-alsa = "\
102     ${libdir}/alsa-lib/* \
103     ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \
104 "
105
106 FILES_${PN}-pulseaudio = "\
107     ${libdir}/libpulse*.so.* \
108 "
109
110 FILES_gstreamer${GST_VER}-${PN} = "\
111     ${libdir}/gstreamer-${GST_VER}/* \
112 "
113
114 RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"