[Pkg-utopia-maintainers] Bug#1021370: pipewire: build with bluez5-codec-aac=enabled
Pauli Virtanen
pav at iki.fi
Thu Sep 19 18:01:20 BST 2024
On Fri, 12 Jan 2024 23:08:15 +0700 Max Nikulin <manikulin at gmail.com>
wrote:
> On Fri, 07 Oct 2022 00:11:56 +0200 KeyofBlueS wrote:
> >
> > please build pipewire with aac codec support enabled.
>
> An alternative may be building a separate package for the contrib
> repository section that contains just the aac codec plugin.
>
> I have no experience with meson, so I have no idea if it is possible
to
> force it to ignore everything besides the specific plugin. As a proof
of
> concept I have tried the following Makefile. Perhaps more flags
should
> be added.
This is how RPMFusion does aptx. Same works for aac:
https://pkgs.rpmfusion.org/cgit/free/pipewire-codec-aptx.git/tree/pipewire-codec-aptx.spec#n27
meson setup builddir --auto-features=disabled -D examples=disabled \
-D bluez5=enabled -D bluez5-codec-aptx=enabled
meson compile -C builddir spa-codec-bluez5-aptx
>
> # - atomic_dep?
> top_srcdir ?= .
> top_builddir ?= $(top_srcdir)
> builddir ?= $(top_srcdir)
>
> spaversion = $(shell sed -n -e "s/^spaversion *= *'\(.*\)'$$/\1/p"
> $(top_srcdir)/meson.build)
> pkgname = libspa-$(spaversion)
> plugindir = $(shell pkg-config --variable=plugindir $(pkgname))
> installdir = $(plugindir)/bluez5
> # toplevel default_options
> plugin_CFLAGS += --std=gnu11 -fPIE
> # toplevel cc_flags
> plugin_CFLAGS += -D_GNU_SOURCE -DFASTPATH
> # toplevel common_flags
> plugin_CFLAGS += -fvisibility=hidden -fno-strict-aliasing
> # AVX and SSE flags perhaps may be ignored since
> # computations should be done inside the linked library
> # bluez5 codec_args
> plugin_CFLAGS += -DCODEC_PLUGIN
> # spa pkgconfig
> plugin_CFLAGS += $(shell pkg-config --cflags $(pkgname))
> # required for shared library
> plugin_CFLAGS += -fPIC
> plugin_CFLAGS += $(shell pkg-config --cflags fdk-aac)
> ALL_CFLAGS = $(plugin_CFLAGS) $(CFLAGS)
> ALL_LDLIBS = $(LDLIBS) $(shell pkg-config --libs fdk-aac)
>
> bluez5_dir = $(top_srcdir)/spa/plugins/bluez5
> aac_codec = $(builddir)/libspa-codec-bluez5-aac.so
> plugin_LIBRARIES += $(aac_codec)
> plugin_OBJECTS += $(builddir)/a2dp-codec-aac.o $(builddir)/media-
codecs.o
>
> all: $(plugin_LIBRARIES)
> clean:
> $(RM) $(plugin_LIBRARIES) $(plugin_OBJECTS)
>
> # Not $(LD) due to $(LDFLAGS)
> # ld: unrecognized option '-Wl,-z,relro'
> $(aac_codec): $(plugin_OBJECTS)
> $(CC) -o $@ -shared $(LDFLAGS) $^ $(ALL_LDLIBS)
>
> $(builddir)/%.o: $(bluez5_dir)/%.c
> $(CC) -o $@ $(CPPFLAGS) $(ALL_CFLAGS) -c $<
>
> install: $(plugin_LIBRARIES)
> install -D --target-directory $(DESTDIR)$(installdir)
$(plugin_LIBRARIES)
>
More information about the Pkg-utopia-maintainers
mailing list