Files
macports-ports/audio/audacious-plugins/Portfile
T
Mohamed Akram 4872d6d488 audacious: adjust qt5 version range
None of the Qt5 versions currently build for anything older than High
Sierra.
2026-06-09 19:21:34 +04:00

509 lines
17 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup meson 1.0
PortGroup active_variants 1.1
name audacious-plugins
# Please keep audacious, audacious-core and audacious-plugins synchronized.
version 4.6.1
revision 0
# FIXME: probably more licenses involved here...
license BSD GPL-2+
categories audio
maintainers {ionic @Ionic} \
{makr @mohd-akram}
homepage https://www.audacious-media-player.org/
description Adds I/O, audio decoding, audio transforming and UI plugins.
long_description This ports bundles most of the functionality for audacious. \
{*}${description}
# Maintainer-only helper for testing changes quickly and easily.
#fetch.type git
#git.url https://github.com/Ionic/audacious-plugins
#git.branch ${name}-${version}-buildfix
master_sites https://distfiles.audacious-media-player.org
use_bzip2 yes
checksums rmd160 f02d78e3241562548a67e30d79b9d8cb3989d55b \
sha256 22e58a8a2c3f3caa9687434353618c822963cc8846cd239de36d4e8e5bd166a6 \
size 1797504
universal_variant no
depends_build port:gettext
depends_lib port:audacious-core \
port:gettext-runtime \
port:libxml2 \
port:zlib \
path:lib/pkgconfig/glib-2.0.pc:glib2
depends_run port:unzip
compiler.c_standard 1999
compiler.cxx_standard 2017
# Options order per meson_options.txt
# gui
configure.args-append \
-Dgtk=false \
-Dgtk2=false \
-Dqt=false \
-Dqt5=false
# container
configure.args-append \
-Dcue=false
# transport
configure.args-append \
-Dmms=false \
-Dneon=false
# input
configure.args-append \
-Daac=false \
-Dadplug=false \
-Damidiplug=false \
-Dcdaudio=false \
-Dconsole=true \
-Dffaudio=false \
-Dflac=false \
-Dmodplug=false \
-Dmpg123=false \
-Dopenmpt=false \
-Dopus=false \
-Dsid=false \
-Dsndfile=false \
-Dvorbis=false \
-Dwavpack=false
# output
# sdlout was originally the only working audio output plugin on macOS.
# coreaudio is always enabled on macOS. It has problems setting the initial volume.
# When using Qt5, the QtMultimedia audio output seems to be a good choice feature-wise.
# Try PulseAudio at your own risk.
configure.args-append \
-Dalsa=false \
-Dcoreaudio=false \
-Dfilewriter=true \
-Dfilewriter-flac=false \
-Dfilewriter-mp3=false \
-Dfilewriter-ogg=false \
-Djack=false \
-Doss=false \
-Dpipewire=false \
-Dpulse=false \
-Dqtaudio=false \
-Dsdlout=false \
-Dsndio=false
# general
configure.args-append \
-Dampache=false \
-Daosd=false \
-Dhotkey=false \
-Dlirc=false \
-Dmac-now-playing=false \
-Dmpris2=false \
-Dnotify=false \
-Dscrobbler2=false \
-Dsongchange=true \
-Dstreamtuner=false
# effect
configure.args-append \
-Dbs2b=false \
-Dresample=false \
-Dsoxr=false \
-Dspeedpitch=false
# visualization
configure.args-append \
-Dgl-spectrum=false \
-Dvumeter=false
platform darwin {
configure.args-replace -Dcoreaudio=false \
-Dcoreaudio=true \
-Dmac-now-playing=false \
-Dmac-now-playing=true
}
# Even if we disable blocks to make it build with GCC, it is broken
# and outputs only hiss. Use SDL audio out instead, until fixed.
# FIXME: https://github.com/audacious-media-player/audacious/issues/1440
platform darwin powerpc {
configure.args-replace -Dcoreaudio=true \
-Dcoreaudio=false
}
# This issue was supposed to be fixed, but it did not work as intended.
# Temporarily revert upstream commit and restore our patch. This is tested.
# https://github.com/audacious-media-player/audacious-plugins/pull/166
patchfiles-append patch-big-endian.diff
default_variants +full
depends_build-append \
path:bin/pkg-config:pkgconfig
post-destroot {
xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${name}
xinstall -m 0644 ${worksrcpath}/COPYING ${destroot}${prefix}/share/doc/${name}
}
variant pulseaudio description {Add support for PulseAudio} {
depends_lib-append port:pulseaudio
configure.args-replace -Dpulse=false \
-Dpulse=true
}
variant mp3 description {Add support for MP3 files} {
depends_lib-append port:mpg123 \
port:lame
configure.args-replace -Dmpg123=false \
-Dmpg123=true \
-Dfilewriter-mp3=false \
-Dfilewriter-mp3=true
}
variant mpris2 description {Adds support for MPRIS2} {
# gdbus-codegen
depends_build-append path:lib/pkgconfig/glib-2.0.pc:glib2
depends_run-append port:dbus
configure.args-replace -Dmpris2=false \
-Dmpris2=true
}
variant hotkey description {Adds global hotkey plugin (X11)} {
configure.args-replace -Dhotkey=false \
-Dhotkey=true
}
variant lirc description {Adds support for infrared devices via LIRC} {
depends_lib-append port:lirc
configure.args-replace -Dlirc=false \
-Dlirc=true
}
variant osd description {Adds OSD support via pangocairo} {
depends_lib-append port:xrender \
port:xorg-libXcomposite
configure.args-replace -Daosd=false \
-Daosd=true
}
variant notifications description {Adds support for notifications via libnotify} {
depends_lib-append port:libnotify \
path:lib/pkgconfig/gdk-pixbuf-2.0.pc:gdk-pixbuf2
configure.args-replace -Dnotify=false \
-Dnotify=true
}
variant vorbis description {Add support for the OggVorbis audio codec} {
depends_lib-append port:libvorbis \
port:libogg
configure.args-replace -Dvorbis=false \
-Dvorbis=true \
-Dfilewriter-ogg=false \
-Dfilewriter-ogg=true
}
variant opus description {Add support for the Opus codec} {
depends_lib-append port:opusfile
configure.args-replace -Dopus=false \
-Dopus=true
}
variant flac description {Add support for FLAC: Free Lossless Audio Codec} {
depends_lib-append port:flac
configure.args-replace -Dflac=false \
-Dflac=true \
-Dfilewriter-flac=false \
-Dfilewriter-flac=true
}
variant wavpack description {Add support for wavpack audio compression tools} {
depends_lib-append port:wavpack
configure.args-replace -Dwavpack=false \
-Dwavpack=true
}
variant aac description {Add support for MPEG-4 AAC Audio} {
depends_lib-append port:faad2
configure.args-replace -Daac=false \
-Daac=true
}
variant sndfile description {Add support for libsndfile} {
depends_lib-append port:libsndfile
configure.args-replace -Dsndfile=false \
-Dsndfile=true
}
variant modplug description {Add support for MOD audio codec} {
depends_lib-append port:libmodplug
configure.args-replace -Dmodplug=false \
-Dmodplug=true
}
variant openmpt description {Add support for MOD, XM, S3M,IT, MPTM and others} {
depends_lib-append port:libopenmpt
configure.args-replace -Dopenmpt=false \
-Dopenmpt=true
}
variant adplug description {Add support for the AdLib synthesizer} {
depends_lib-append port:adplug \
port:libbinio
configure.args-replace -Dadplug=false \
-Dadplug=true
}
variant bs2b description {Add support for Bauer stereophonic-to-binaural} {
depends_lib-append port:libbs2b
configure.args-replace -Dbs2b=false \
-Dbs2b=true
}
variant ffmpeg description {Add support for decoding audio streams via ffmpeg} {
PortGroup ffmpeg 1.0
ffmpeg.version 8
configure.args-replace -Dffaudio=false \
-Dffaudio=true
}
variant jack description {Add support for the JACK Audio Connection Kit} {
depends_lib-append port:jack
configure.args-replace -Djack=false \
-Djack=true
}
variant sid description {Build with SID (Commodore 64 Audio) support} {
depends_lib-append port:libsidplayfp
configure.args-replace -Dsid=false \
-Dsid=true
}
variant midi description {Add MIDI playback support via fluidsynth} {
depends_lib-append port:fluidsynth
configure.args-replace -Damidiplug=false \
-Damidiplug=true
}
variant cdaudio description {Add support for CDAudio} {
depends_lib-append port:libcdio-paranoia \
port:libcdio \
port:libcddb
configure.args-replace -Dcdaudio=false \
-Dcdaudio=true
}
variant lastfm description {Add support for last.fm} {
depends_lib-append port:curl
configure.args-replace -Dscrobbler2=false \
-Dscrobbler2=true
}
variant ampache description {Add support for browsing music on an Ampache server} {
depends_lib-append port:ampache_browser
configure.args-replace -Dampache=false \
-Dampache=true
if {[variant_isset qt5]} {
require_active_variants ampache_browser qt5
}
if {[variant_isset qt6]} {
require_active_variants ampache_browser qt6
}
}
variant mms description {Add support for Microsoft Media Server (MMS) streams} {
depends_lib-append port:libmms
configure.args-replace -Dmms=false \
-Dmms=true
}
variant neon description {Add support for neon HTTP client} {
depends_lib-append port:neon
configure.args-replace -Dneon=false \
-Dneon=true
}
variant cue description {Add support for CUE sheets} {
depends_lib-append port:libcue
configure.args-replace -Dcue=false \
-Dcue=true
}
variant transform description {Add support for audio transformation, most notably resampling, pitching and speed control} {
depends_lib-append port:libsamplerate \
port:soxr
configure.args-replace -Dresample=false \
-Dresample=true \
-Dspeedpitch=false \
-Dspeedpitch=true \
-Dsoxr=false \
-Dsoxr=true
}
variant opengl description {Add support for spectrum visualization via OpenGL} {
if {[variant_isset gtk2] || [variant_isset gtk3]} {
depends_lib-append path:lib/libGL.dylib:mesa
}
configure.args-replace -Dgl-spectrum=false \
-Dgl-spectrum=true
}
variant vumeter description {Add support for VU meter visualization} {
configure.args-replace -Dvumeter=false \
-Dvumeter=true
}
variant sdl3 description {Add SDL audio output via SDL3} {
depends_lib-append port:SDL3
configure.args-replace -Dsdlout=false \
-Dsdlout=true
}
variant qt5 conflicts qt6 description {Add Qt5 support} {
PortGroup qt5 1.0
qt5.depends_component qtmultimedia
configure.args-replace -Dqt=false \
-Dqt=true \
-Dqt5=false \
-Dqt5=true \
-Dqtaudio=false \
-Dqtaudio=true
require_active_variants audacious-core qt5
}
variant qt6 conflicts qt5 description {Add Qt6 support} {
PortGroup qt6 1.0
qt6.depends_lib qtmultimedia
# https://trac.macports.org/ticket/69214
configure.pkg_config_path-append [option qt6.dir]/lib/pkgconfig
configure.args-replace -Dqt=false \
-Dqt=true \
-Dqtaudio=false \
-Dqtaudio=true
require_active_variants audacious-core qt6
}
variant gtk2 conflicts gtk3 description {Add GTK2 support} {
depends_lib-append path:lib/pkgconfig/gtk+-2.0.pc:gtk2 \
port:json-glib
configure.args-replace -Dgtk=false \
-Dgtk=true \
-Dgtk2=false \
-Dgtk2=true
require_active_variants audacious-core gtk2
}
variant gtk3 conflicts gtk2 description {Add GTK3 support} {
depends_lib-append path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \
port:json-glib
configure.args-replace -Dgtk=false \
-Dgtk=true
require_active_variants audacious-core gtk3
}
variant full requires mp3 mpris2 wavpack aac sndfile modplug openmpt sid \
midi cdaudio lastfm mms neon cue flac transform \
vorbis opus adplug bs2b notifications \
description {Build all plugins, except additional sound output plugins and potentially conflicting variants} {}
if {[variant_isset jack]} {
notes-append {
You have selected the JACK audio output plugin. \
To use this plugin, jackd needs to be started manually. \
The plugin is known to have issues leading to crackling sound output. \
Please don't report bugs against this plugin.\
}
}
default_variants-append +sdl3 +ffmpeg
# Need either one of gtk2, gtk3, Qt5 or Qt6 to have a GUI.
# Default to qt6, which is preferred by upstream.
if {![variant_isset qt5]} {
if {${os.platform} ne "darwin" || ${os.major} >= 23} {
default_variants-append +qt6
}
}
if {![variant_isset qt6]} {
if {${os.platform} ne "darwin" || ${os.major} >= 17} {
default_variants-append +qt5
}
}
if {![variant_isset qt5] && ![variant_isset qt6] && ![variant_isset gtk2]} {
default_variants-append +gtk3
}
# UI required variants
# Add other variants to the "full" set if UI is enabled
if {[variant_isset full] && ([variant_isset gtk2] || [variant_isset gtk3] || [variant_isset qt5] || [variant_isset qt6])} {
default_variants-append +opengl +vumeter
}
# OpenGL requires UI
if {![variant_isset gtk2] && ![variant_isset gtk3] && ![variant_isset qt5] && ![variant_isset qt6] && [variant_isset opengl]} {
ui_debug "The opengl variant requires either the gtk2, gtk3, qt5 or qt6 variant to be enabled."
error "+opengl requires +gtk2, +gtk3, +qt5 or +qt6."
}
# VU meter requires UI
if {![variant_isset gtk2] && ![variant_isset gtk3] && ![variant_isset qt5] && ![variant_isset qt6] && [variant_isset vumeter]} {
ui_debug "The vumeter variant requires either the gtk2, gtk3, qt5 or qt6 variant to be enabled."
error "+vumeter requires +gtk2, +gtk3, +qt5 or +qt6."
}
# Qt only
# Ampache only supported with Qt5 or Qt6
if {![variant_isset qt5] && ![variant_isset qt6] && [variant_isset ampache]} {
ui_debug "The ampache variant requires either the qt5 or qt6 variants to be enabled."
error "+ampache requires +qt5 or +qt6."
}
# GTK only
# Add other variants to the "full" set if GTK is enabled
if {[variant_isset full] && ([variant_isset gtk2] || [variant_isset gtk3])} {
default_variants-append +osd
}
# hotkey only supported with GTK
if {![variant_isset gtk2] && ![variant_isset gtk3] && [variant_isset hotkey]} {
ui_debug "The hotkey variant requires either the gtk2 or gtk3 variant to be enabled."
error "+hotkey require +gtk2 or +gtk3."
}
# OSD only supported with GTK
if {![variant_isset gtk2] && ![variant_isset gtk3] && [variant_isset osd]} {
ui_debug "The osd variant requires either the gtk2 or gtk3 variant to be enabled."
error "+osd require +gtk2 or +gtk3."
}
livecheck.type regex
livecheck.url ${master_sites}
livecheck.regex "${name}-(\\d+(?:\\.\\d+)*)${extract.suffix}"