# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4

PortSystem              1.0
PortGroup               waf 1.0

name                    xmms2
version                 0.8DrO_o
revision                22
categories              audio
# Mostly LGPL, some plugins and clients are GPL
license                 LGPL-2.1+ GPL-2+ GPL-2
maintainers             nomaintainer
homepage                https://github.com/xmms2/wiki/wiki
platforms               darwin
master_sites            sourceforge:project/xmms2/xmms2/[regsub {^([0-9.]+)} ${version} {\1%20}]
use_bzip2               yes

description             CrossPlatform Music Multiplexer System
long_description        Next generation audio player of XMMS

checksums               rmd160  35513d7eddd5f79146cb8aa5c6c0bb35369619ec \
                        sha256  c77e41e7bd5788889d5a2f78331ca8c748b8721bd2e59f36c36ad4c7cae8694a \
                        size    1670726

depends_build-append    port:pkgconfig

depends_lib             path:lib/pkgconfig/glib-2.0.pc:glib2 \
                        port:gettext \
                        port:libiconv \
                        port:libxml2 \
                        port:curl \
                        path:lib/libssl.dylib:openssl \
                        port:zlib \
                        port:sqlite3 \
                        port:libao \
                        port:libmad \
                        port:libogg \
                        port:libvorbis \
                        port:flac \
                        path:lib/libavcodec.dylib:ffmpeg \
                        port:libdiscid \
                        port:faad2 \
                        port:fftw-3-single \
                        port:libmms \
                        port:libmodplug \
                        port:libmpcdec \
                        port:mpg123 \
                        port:readline \
                        port:libsamplerate \
                        port:libsdl \
                        path:lib/libspeex.dylib:speex \
                        port:wavpack \
                        port:libshout2 \
                        port:libcdio \
                        port:libcdio-paranoia

# the first 3 patchfiles sequentially patch src/plugins/avcodec - order is important!
# patch-ffmpeg-3.0.diff patches the avcodec plugin through upstream commit fc66249 (2014-01-29)
# https://git.xmms2.org/xmms2/xmms2-devel/commit/src/plugins/avcodec?id=fc66249

patchfiles              patch-ffmpeg-2.0.diff \
                        patch-nellymoser.diff \
                        patch-ffmpeg-3.0.diff \
                        patch-src-plugins-modplug-modplug.c.diff \
                        patch-wscript.diff \
                        patch-src-clients-vistest-wscript.diff \
                        patch-src-plugins-cdda-cdda.c.diff \
                        patch-dnssd-fd-check.diff \
                        patch-openssl-1.1.0.diff

post-patch {
    foreach f [glob -directory ${worksrcpath} waf waf-light wafadmin/*.py wafadmin/*/*.py waftools/ruby.py] {
        reinplace -locale C "s|^#! */usr/bin/env python\$|#!${waf.python}|" ${f}
    }
}

configure.args          --conf-prefix=${prefix} \
                        --without-optionals python

variant cpp description {C++ development support} {
    depends_lib-append port:boost
}
if {![variant_isset cpp]} {
    configure.args-append --without-optionals xmmsclient++,xmmsclient++-glib
}

variant perl description {Perl development support} {
    depends_lib-append port:perl5
}
if {![variant_isset perl]} {
    configure.args-append --without-optionals perl
}

variant ruby description {Ruby development support} {
    depends_lib-append port:ruby
}
if {![variant_isset ruby]} {
    configure.args-append --without-optionals ruby
}

variant mdns description {MDNS backend support using avahi} {
    depends_lib-append port:avahi
}
if {![variant_isset mdns]} {
    configure.args-append --without-optionals mdns \
                          --without-plugins=daap
}

variant pulse description {Pulseaudio support} {
    depends_lib-append port:pulseaudio
}
if {![variant_isset pulse]} {
    configure.args-append --without-plugins=pulse
}

variant jack description {Jack audio support} {
    depends_lib-append port:jack
}
if {![variant_isset jack]} {
    configure.args-append --without-plugins=jack
}

variant python27 description {Support for Python 2.7} {
    depends_lib-append      port:py27-pyrex
    configure.args-delete   --without-optionals python
    configure.python        ${prefix}/bin/python2.7
}

default_variants +python27

livecheck.regex         /${name}-(.+)${extract.suffix}