# -*- 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.4 revision 0 # FIXME: probably more licenses involved here... license BSD GPL-2+ categories multimedia 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 85954e4f6fc965154a5f9884b9a2642fbdfae36d \ sha256 3caf3a5fe5b6f2808f461f85132fbff4ae22a53ef9f3d26d9e6030f6c6d5baa2 \ size 1810406 universal_variant no depends_lib port:audacious-core \ port:gettext \ 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=true \ -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-media-keys=true \ -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 \ # interface configure.args-append \ -Dmoonstone=false # https://github.com/audacious-media-player/audacious-plugins/pull/166 patchfiles-append 0001-xsf-desmume-types.h-ensure-LOCAL_BE-gets-defined-on-.patch # SPInvocationGrabbing.m: error: '-fobjc-exceptions' is required to enable Objective-C exception syntax # SPInvocationGrabbing.m: error: 'for' loop initial declarations are only allowed in C99 or C11 mode # SPInvocationGrabbing.m: note: use option '-std=c99', '-std=gnu99', '-std=c11' or '-std=gnu11' to compile your code patchfiles-append 0002-mac-media-keys-use-correct-objc-flags.patch # 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 } 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 dbus description {Adds support for GNOME shortcuts and remote control via DBUS} { depends_build-append path:bin/gdbus-codegen:glib2 depends_lib-append path:lib/pkgconfig/dbus-1.pc:dbus \ path:lib/pkgconfig/dbus-glib-1.pc:dbus-glib configure.args-replace -Dmpris2=false \ -Dmpris2=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 configure.args-replace -Dnotify=false \ -Dnotify=true } variant vorbis description {Add support for the OggVorbis audio codec} { depends_lib-append port:libvorbis 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 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 conflicts sdl1 description {Add support for decoding audio streams via ffmpeg} { set ffmpeg_ver 7 depends_lib-append port:ffmpeg${ffmpeg_ver} configure.pkg_config_path-append \ ${prefix}/libexec/ffmpeg${ffmpeg_ver}/lib/pkgconfig 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: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} { depends_lib-append path:lib/libGL.dylib:mesa configure.args-replace -Dgl-spectrum=false \ -Dgl-spectrum=true } variant sdl1 conflicts sdl2 ffmpeg description {Add SDL audio output via libsdl1} { depends_lib-append port:libsdl configure.args-replace -Dsdlout=false \ -Dsdlout=true } variant sdl2 conflicts sdl1 description {Add SDL audio output via libsdl2} { depends_lib-append port:libsdl2 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 \ -Dvumeter=false \ -Dvumeter=true require_active_variants audacious-core qt5 } variant qt6 conflicts qt5 description {Add Qt6 support} { PortGroup qt6 1.0 qt6.depends_lib qtmultimedia 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 configure.args-replace -Dgtk=false \ -Dgtk=true \ -Dgtk2=false \ -Dgtk2=true \ -Dhotkey=false \ -Dhotkey=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 configure.args-replace -Dgtk=false \ -Dgtk=true \ -Dhotkey=false \ -Dhotkey=true require_active_variants audacious-core gtk3 } variant full requires mp3 dbus 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.\ } } if {![variant_isset sdl1]} { default_variants-append +sdl2 +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 gtk2] && ![variant_isset gtk3] && ![variant_isset qt5]} { # Fails to build on macOS - https://trac.macports.org/ticket/69214 if {${os.platform} ne "darwin"} { default_variants-append +qt6 } } if {![variant_isset gtk2] && ![variant_isset gtk3] && ![variant_isset qt6]} { if {${os.platform} eq "darwin" && ${os.major} < 11} { default_variants-append +gtk3 } else { default_variants-append +qt5 } } # UI required variants # Add other variants to the "full" set if gtk2, gtk3, qt5 or qt6 have been enabled. if {[variant_isset full] && ([variant_isset gtk2] || [variant_isset gtk3] || [variant_isset qt5] || [variant_isset qt6])} { default_variants-append +opengl } # OpenGL only supported with gtk2, gtk3 or Qt5. 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." } # 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 gtk2 or gtk3 have been enabled. if {[variant_isset full] && ([variant_isset gtk2] || [variant_isset gtk3])} { default_variants-append +osd } # OSD only supported with gtk2 or gtk3. 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}"