Files
buildroot/package/mpd/Config.in
Andreas Ziegler 99d5bacae6 package/mpd: introduce id3tag feature dependency
id3tag is a sub-feature that is needed to extract information from mp3 files.
It selects the corresponding library and handles config settings. Two other
features need this sub-feature, but handle all library selections themselves
and omit enabling the id3tag feature. In consequence, users have to remember
to select both mp3 library and id3tag, otherwise the mpd executable will not
process mp3 files.

Reflect feature dependency in mpd Config.in to make id3tag selection automatic.

Signed-off-by: Andreas Ziegler <br015@umbiko.net>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 876a365ea2)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2023-09-11 09:21:20 +02:00

444 lines
11 KiB
Plaintext

menuconfig BR2_PACKAGE_MPD
bool "mpd"
depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_USE_WCHAR # boost
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU # fork
depends on BR2_TOOLCHAIN_HAS_ATOMIC
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17
depends on BR2_HOST_GCC_AT_LEAST_8 # C++17
select BR2_PACKAGE_BOOST
select BR2_PACKAGE_FMT
select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
help
MPD is a flexible, powerful, server-side application
for playing music. Through plugins and libraries
it can play a variety of sound files while being
controlled by its network protocol.
https://www.musicpd.org
if BR2_PACKAGE_MPD
comment "Archive plugins"
config BR2_PACKAGE_MPD_BZIP2
bool "bzip2"
select BR2_PACKAGE_BZIP2
help
Enable bzip2 archive support.
config BR2_PACKAGE_MPD_SQLITE
bool "sqlite"
select BR2_PACKAGE_SQLITE
help
Enable sqlite database support.
If you don't use sqlite it will use an ASCII database.
config BR2_PACKAGE_MPD_ZZIP
bool "zzip"
select BR2_PACKAGE_ZZIPLIB
help
Enable ZIP archive support.
comment "Commercial services"
config BR2_PACKAGE_MPD_QOBUZ
bool "qobuz"
depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS
select BR2_PACKAGE_MPD_CURL
select BR2_PACKAGE_LIBGCRYPT
select BR2_PACKAGE_YAJL
help
Play songs from the commercial streaming service Qobuz.
config BR2_PACKAGE_MPD_SOUNDCLOUD
bool "soundcloud"
select BR2_PACKAGE_MPD_CURL
select BR2_PACKAGE_YAJL
help
Enable soundcloud.com playlist support.
comment "Converter plugins"
config BR2_PACKAGE_MPD_LIBSAMPLERATE
bool "libsamplerate"
select BR2_PACKAGE_LIBSAMPLERATE
help
Enable libsamplerate input support.
Select this for software sample rate conversion.
config BR2_PACKAGE_MPD_LIBSOXR
bool "libsoxr"
select BR2_PACKAGE_LIBSOXR
help
Enable libsoxr resampler support.
The SoX Resampler library performs software sample-rate
conversion.
comment "Decoder plugins"
config BR2_PACKAGE_MPD_DSD
bool "dsd"
help
Enable Digital Speech Decoder (DSD) support to play audio
files encoded in a digital speech format.
config BR2_PACKAGE_MPD_FAAD2
bool "faad2"
select BR2_PACKAGE_FAAD2
help
Enable faad2 input support.
Select this if you want to play back MP4/AAC files.
config BR2_PACKAGE_MPD_FFMPEG
bool "ffmpeg"
depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
select BR2_PACKAGE_FFMPEG
help
Enable ffmpeg input support.
Select this if you want to play back files supported by
ffmpeg.
config BR2_PACKAGE_MPD_FLAC
bool "flac"
select BR2_PACKAGE_FLAC
help
Enable flac input/streaming support.
Select this if you want to play back FLAC files.
config BR2_PACKAGE_MPD_FLUIDSYNTH
bool "fluidsynth"
depends on !BR2_STATIC_LIBS
select BR2_PACKAGE_FLUIDSYNTH
help
Enable fluidsynth MIDI decoder support.
comment "fluidsynth support needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_MPD_LIBSNDFILE
bool "libsndfile"
select BR2_PACKAGE_LIBSNDFILE
help
Enable libsndfile input/streaming support.
Select this if you want to play back WAV files.
config BR2_PACKAGE_MPD_MAD
bool "mad"
default y
select BR2_PACKAGE_MPD_ID3TAG
select BR2_PACKAGE_LIBMAD
help
Enable mad input support.
Select this if you want to play back MP3 files.
config BR2_PACKAGE_MPD_MODPLUG
bool "modplug"
select BR2_PACKAGE_LIBMODPLUG
help
Enable Modplug decoder support.
config BR2_PACKAGE_MPD_MPG123
bool "mpg123"
select BR2_PACKAGE_MPD_ID3TAG
select BR2_PACKAGE_MPG123
help
Enable mpg123 input support.
Select this if you want to play back MP3 files.
config BR2_PACKAGE_MPD_MUSEPACK
bool "musepack"
select BR2_PACKAGE_LIBCUEFILE
select BR2_PACKAGE_LIBREPLAYGAIN
select BR2_PACKAGE_MUSEPACK
help
Enable musepack input support.
Select this if you want to play back MPC files.
config BR2_PACKAGE_MPD_OPUS
bool "opus"
select BR2_PACKAGE_OPUS
select BR2_PACKAGE_LIBOGG
help
Enable opus input support.
Select this if you want to play back OPUS encoded files.
config BR2_PACKAGE_MPD_SIDPLAY
bool "sidplay"
select BR2_PACKAGE_LIBSIDPLAY2
help
Enable C64 SID support.
config BR2_PACKAGE_MPD_TREMOR
bool "tremor"
depends on !BR2_PACKAGE_MPD_VORBIS
select BR2_PACKAGE_LIBOGG
select BR2_PACKAGE_TREMOR
help
Enable vorbis input support.
Select this if you want to play back OGG files on softfloat
targets.
config BR2_PACKAGE_MPD_VORBIS
bool "vorbis"
select BR2_PACKAGE_LIBOGG
select BR2_PACKAGE_LIBVORBIS
help
Enable vorbis input/streaming support.
Select this if you want to play back OGG files on hardfloat
targets.
config BR2_PACKAGE_MPD_WAVPACK
bool "wavpack"
select BR2_PACKAGE_WAVPACK
help
Enable wavpack input support.
Select this if you want to play back WV files.
comment "Encoder plugins"
config BR2_PACKAGE_MPD_LAME
bool "lame"
select BR2_PACKAGE_LAME
help
Enable lame (mp3) encoding support.
config BR2_PACKAGE_MPD_TWOLAME
bool "twolame"
select BR2_PACKAGE_TWOLAME
help
Enable TwoLAME mp2 encoding.
comment "Input plugins"
config BR2_PACKAGE_MPD_CDIO_PARANOIA
bool "cdio-paranoia"
select BR2_PACKAGE_LIBCDIO_PARANOIA
help
Enable cdio-paranoia support.
config BR2_PACKAGE_MPD_CURL
bool "curl"
select BR2_PACKAGE_LIBCURL
help
Enable curl streaming (http) support.
config BR2_PACKAGE_MPD_LIBMMS
bool "mms"
select BR2_PACKAGE_LIBMMS
help
Enable MMS support.
config BR2_PACKAGE_MPD_LIBNFS
bool "nfs"
# libnfs -> libtirpc
depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_LIBNFS
help
Enable Network File System (NFS) support.
comment "nfs support needs a toolchain w/ threads support"
depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC)
comment "samba support needs a glibc toolchain w/ dynamic library, RPC"
depends on !BR2_nios2
depends on !BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS || \
!BR2_TOOLCHAIN_HAS_NATIVE_RPC
config BR2_PACKAGE_MPD_LIBSMBCLIENT
bool "samba"
depends on !BR2_nios2 # samba
depends on BR2_TOOLCHAIN_USES_GLIBC
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
depends on BR2_TOOLCHAIN_HAS_SYNC_4
select BR2_PACKAGE_SAMBA4
help
Enable Samba support.
comment "Output plugins"
config BR2_PACKAGE_MPD_ALSA
bool "alsa"
default y
select BR2_PACKAGE_ALSA_LIB
select BR2_PACKAGE_ALSA_LIB_PCM
select BR2_PACKAGE_ALSA_LIB_MIXER
help
Enable alsa output support.
config BR2_PACKAGE_MPD_AO
bool "ao"
select BR2_PACKAGE_LIBAO
help
Enable libao output support.
config BR2_PACKAGE_MPD_HTTPD_OUTPUT
bool "httpd output"
help
Enable httpd output support.
config BR2_PACKAGE_MPD_JACK2
bool "jack2"
depends on !BR2_STATIC_LIBS # jack2
depends on BR2_TOOLCHAIN_HAS_SYNC_4
select BR2_PACKAGE_JACK2
help
Enable jack output support.
comment "jack support needs a toolchain w/ dynamic library"
depends on BR2_TOOLCHAIN_HAS_SYNC_4
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_MPD_OPENAL
bool "openal"
depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
select BR2_PACKAGE_OPENAL
help
Enable OpenAL output support.
comment "openal support needs a toolchain w/ NPTL"
depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
config BR2_PACKAGE_MPD_OSS
bool "oss"
help
Enable OSS (Open Sound System) output support.
config BR2_PACKAGE_MPD_PULSEAUDIO
bool "pulseaudio"
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
depends on BR2_USE_WCHAR
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on !BR2_STATIC_LIBS
depends on BR2_USE_MMU
select BR2_PACKAGE_PULSEAUDIO
help
Enable pulseaudio output support.
comment "pulseaudio support needs a toolchain w/ threads, wchar, dynamic library"
depends on BR2_USE_MMU
depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || !BR2_USE_WCHAR
config BR2_PACKAGE_MPD_SHOUTCAST
bool "shoutcast"
select BR2_PACKAGE_LIBSHOUT
help
Enable shoutcast streaming output support.
comment "Miscellaneous plugins"
config BR2_PACKAGE_MPD_AVAHI_SUPPORT
bool "avahi (zeroconf) support"
depends on !BR2_STATIC_LIBS # avahi
select BR2_PACKAGE_AVAHI
select BR2_PACKAGE_AVAHI_DAEMON
select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY
help
Enable Avahi (zeroconf) support.
Select this for multicast DNS/DNS-SD service discovery
support. This allows MPD to publish service information on a
local network.
comment "avahi support needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
config BR2_PACKAGE_MPD_IO_URING
bool "io_uring"
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1
select BR2_PACKAGE_LIBURING
help
Asynchronous I/O using kernel io_uring subsystem
comment "io_uring support needs a toolchain w/ headers >= 5.1"
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1
config BR2_PACKAGE_MPD_LIBMPDCLIENT
bool "libmpdclient"
select BR2_PACKAGE_LIBMPDCLIENT
help
Enable libmpdclient support.
config BR2_PACKAGE_MPD_NEIGHBOR_DISCOVERY_SUPPORT
bool "neighbor discovery support"
depends on BR2_PACKAGE_MPD_LIBSMBCLIENT || !BR2_PACKAGE_MPD_UPNP_DISABLED
help
Enable support for neighbor discovery.
This option can be used in conjunction with the smbclient
plugin to provide a list of SMB/CIFS servers or with the
UPnP plugin to provide a list of UPnP servers on the local
network. The neighbor plugin needs configuration in
mpd.conf. For further information take a look at the MPD
documentation.
config BR2_PACKAGE_MPD_TCP
bool "tcp sockets"
default y
help
Enable MPD to listen on tcp sockets.
You want this on if MPD and the client(s) work
on different machines (the usual scenario).
choice
prompt "UPnP"
default BR2_PACKAGE_MPD_UPNP_PUPNP if BR2_PACKAGE_MPD_UPNP # legacy
default BR2_PACKAGE_MPD_UPNP_DISABLED
help
Enable MPD to access a UPnP based media server.
For further information, see
https://www.lesbonscomptes.com/upmpdcli/pages/upmpdcli-or-mpdupnp.html
config BR2_PACKAGE_MPD_UPNP_PUPNP
bool "pupnp"
select BR2_PACKAGE_EXPAT
select BR2_PACKAGE_LIBUPNP
select BR2_PACKAGE_MPD_CURL
help
Provides UPnP database access through libupnp
(the legacy Portable SDK for UPnP devices).
Introduces least additional dependencies.
config BR2_PACKAGE_MPD_UPNP_NPUPNP
bool "npupnp"
select BR2_PACKAGE_LIBNPUPNP
select BR2_PACKAGE_MPD_CURL
help
Provides UPnP database access through libnpupnp
(a C++ reimplementation of the Portable UPnP library).
This implementation is more modern, but also brings
additional features not needed in this context, thus
consuming more space.
config BR2_PACKAGE_MPD_UPNP_DISABLED
bool "disabled"
help
No UPnP client functionality.
endchoice
comment "Tag plugins"
config BR2_PACKAGE_MPD_ID3TAG
bool "id3tag"
select BR2_PACKAGE_LIBID3TAG
help
Enable ID3 support.
endif
comment "mpd needs a toolchain w/ C++, threads, wchar, gcc >= 8, host gcc >= 8"
depends on BR2_USE_MMU
depends on BR2_TOOLCHAIN_HAS_ATOMIC
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
!BR2_TOOLCHAIN_HAS_THREADS || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_8 || \
!BR2_HOST_GCC_AT_LEAST_8