b3081ca43728fe11b5d5df8a1a577169a5fc0552
[AGL/meta-agl.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     ${@bb.utils.filter('DISTRO_FEATURES', 'bluez5', d)} \
22     alsa audioconvert audiomixer \
23     pipewire-alsa \
24     gstreamer \
25 "
26
27 GST_VER = "1.0"
28
29 # systemd integration
30 PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
31
32 # SPA plugins
33 PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,udev alsa-lib"
34 PACKAGECONFIG[audioconvert] = "-Daudioconvert=true,-Daudioconvert=false,"
35 PACKAGECONFIG[audiomixer] = "-Daudiomixer=true,-Daudiomixer=false,"
36 PACKAGECONFIG[audiotestsrc] = "-Daudiotestsrc=true,-Daudiotestsrc=false, "
37 PACKAGECONFIG[bluez5] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc"
38 PACKAGECONFIG[jack] = "-Djack=true,-Djack=false,jack"
39 PACKAGECONFIG[v4l2] = "-Dv4l2=true,-Dv4l2=false,udev v4l-utils"
40 PACKAGECONFIG[videotestsrc] = "-Dvideotestsrc=true,-Dvideotestsrc=false, "
41 PACKAGECONFIG[vulkan] = "-Dvulkan=true,-Dvulkan=false,vulkan"
42
43 # alsa plugin to redirect audio to pipewire
44 PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=true,-Dpipewire-alsa=false,alsa-lib"
45 # pulseaudio drop-in replacement library
46 PACKAGECONFIG[pipewire-pulseaudio] = "-Dpipewire-pulseaudio=true,-Dpipewire-pulseaudio=false,pulseaudio glib-2.0"
47 # jack drop-in replacement library
48 PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=true,-Dpipewire-jack=false,jack"
49
50 # GStreamer plugins
51 PACKAGECONFIG[gstreamer] = "-Dgstreamer=true,-Dgstreamer=false,glib-2.0 gstreamer${GST_VER} gstreamer${GST_VER}-plugins-base"
52
53 # man pages
54 PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native"
55
56 do_install_append() {
57     # only install the alsa config file if the alsa-lib plugin has been built
58     # this avoids creating the pipewire-alsa package when the pipewire-alsa
59     # feature is not enabled
60     if [ -d ${D}${libdir}/alsa-lib ]
61     then
62         mkdir -p ${D}${datadir}/alsa/alsa.conf.d
63         install -m 0644 ${S}/pipewire-alsa/conf/50-pipewire.conf ${D}${datadir}/alsa/alsa.conf.d/50-pipewire.conf
64     fi
65 }
66
67 PACKAGES =+ "\
68     ${PN}-spa-plugins \
69     ${PN}-alsa \
70     ${PN}-pulseaudio \
71     ${PN}-jack \
72     ${PN}-config \
73     gstreamer${GST_VER}-${PN} \
74     lib${PN} \
75     lib${PN}-modules \
76 "
77
78 FILES_${PN} = "\
79     ${bindir}/pipewire* \
80     ${systemd_user_unitdir}/* \
81 "
82
83 FILES_lib${PN} = "\
84     ${libdir}/libpipewire-*.so.* \
85 "
86
87 FILES_lib${PN}-modules = "\
88     ${libdir}/pipewire-*/* \
89 "
90
91 FILES_${PN}-spa-plugins = "\
92     ${bindir}/spa-* \
93     ${libdir}/spa/* \
94 "
95
96 FILES_${PN}-alsa = "\
97     ${libdir}/alsa-lib/* \
98     ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \
99 "
100
101 FILES_${PN}-pulseaudio = "\
102     ${libdir}/libpulse*.so.* \
103 "
104
105 FILES_gstreamer${GST_VER}-${PN} = "\
106     ${libdir}/gstreamer-${GST_VER}/* \
107 "
108
109 RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"
110
111 # The default pipewire config.
112 # Replace in your own package using
113 # "virtual/pipewire-config"
114 FILES_${PN}-config = "\
115     ${sysconfdir}/pipewire/pipewire.conf \
116 "
117 CONFFILES_${PN}-config += "\
118     ${sysconfdir}/pipewire/pipewire.conf \
119 "
120 RPROVIDES_${PN}-config += "virtual/pipewire-config"