# -*- 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
# $Id: Portfile 119912 2014-05-09 21:00:32Z devans@macports.org $

PortSystem  1.0

# https://bugzilla.gnome.org/show_bug.cgi?id=636134
PortGroup           muniversal 1.0
PortGroup           compiler_blacklist_versions 1.0 

name                gstreamer1-gst-plugins-good
set my_name         gst-plugins-good
version             1.2.4
revision            1
set branch          [join [lrange [split ${version} .] 0 1] .]
description         \
    A set of good-quality plug-ins for GStreamer under GStreamer's preferred \
    license, LGPL.
long_description    \
    GStreamer Good Plug-ins is a set of plug-ins that GStreamer's developers \
    consider to have good quality code, correct functionality, and their \
    preferred license (LGPL for the plug-in code, LGPL or LGPL-compatible for \
    the supporting library). 
maintainers         rmstonecipher openmaintainer
categories          gnome
license             LGPL-2+
platforms           darwin
homepage            http://gstreamer.freedesktop.org/modules/${my_name}.html
master_sites        gnome:sources/${my_name}/${branch}/ \
                    http://gstreamer.freedesktop.org/src/${my_name}/
use_xz              yes
distname            ${my_name}-${version}

checksums           rmd160  4465ea5ee9e037e1bc77e4ad79497b1bc0c4e7c0 \
                    sha256  c9c90368393c2e5e78387e95c02ce7b19f48e793bba6d8547f2c4b51c6f420d3

depends_build \
    port:pkgconfig
depends_lib	\
    port:gstreamer1-gst-plugins-base \
    port:aalib \
    port:flac \
    port:gdk-pixbuf2 \
    port:jack \
    port:jpeg \
    port:libgnome-keyring \
    port:libcaca \
    port:libdv \
    port:libpng \
    port:libshout2 \
    port:libsoup \
    path:lib/libspeex.dylib:speex \
    port:libvpx \
    port:taglib \
    port:wavpack \
    port:gobject-introspection \
    port:pulseaudio

patchfiles  leopard-no-osxvideo.patch
      
post-patch {
    # gst/goom is the only thing using this, and its mmx code is buggy (as of 0.10.31)
    reinplace "s|-DBUILD_MMX|-UBUILD_MMX|" ${worksrcpath}/gst/goom/Makefile.am
    reinplace "/^MMX_FILES/s|=.*|=|"       ${worksrcpath}/gst/goom/Makefile.am
}

use_autoreconf          yes
autoreconf.args         -fvi

configure.args-append   --disable-gtk-doc --with-default-videosink=ximagesink
configure.env-append    "HAVE_CXX=yes"

if {[variant_isset universal]} { 
    set merger_host(x86_64) x86_64-apple-${os.platform}${os.major}
    set merger_host(i386) i686-apple-${os.platform}${os.major}
    set merger_configure_args(x86_64) --build=x86_64-apple-${os.platform}${os.major}
    set merger_configure_args(i386) --build=i686-apple-${os.platform}${os.major}

    # gobject-introspection uses g-ir-scanner, which uses $CC from env
    foreach arch ${configure.universal_archs} {
        lappend merger_build_args(${arch})  CC='${configure.cc} -arch ${arch}'
        lappend merger_destroot_args(${arch})  CC='${configure.cc} -arch ${arch}'
    }
} else {

    if {${build_arch} eq "i386"} {
        configure.args-append \
            --host=i686-apple-${os.platform}${os.major} \
            --build=i686-apple-${os.platform}${os.major}
    } elseif {${build_arch} eq "x86_64"} {
        configure.args-append \
            --host=${build_arch}-apple-${os.platform}${os.major} \
            --build=${build_arch}-apple-${os.platform}${os.major}
    }

    build.args-append       CC="${configure.cc} ${configure.cc_archflags}"
    destroot.args-append    CC="${configure.cc} ${configure.cc_archflags}"
}

# SSE register return with SSE disabled
# <rdar://problem/9694837> - Fixed in XCode 4.2 (clang 211.10.1) 
compiler.blacklist  {clang < 211.10.1} 

pre-activate {
    if {![catch {set installed [lindex [registry_active gstreamer1-gst-plugins-bad] 0]}]} {
        set _version [lindex $installed 1]
        if {[vercmp $_version 1.2.1] < 0} {
            registry_deactivate_composite gstreamer1-gst-plugins-bad "" [list ports_nodepcheck 1]
        }
    }
}

livecheck.type  gnome
livecheck.name  ${my_name}
