# -*- 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 90820 2012-03-15 03:13:40Z jmr@macports.org $

PortSystem          1.0

name                magicspp
version             2.10.0
revision            5
platforms           darwin
maintainers         nomaintainer
license             Apache-2.0
categories          science
description         ECMWF's Meteorological plotting software
homepage            http://www.ecmwf.int/products/data/software/magics++.html
master_sites        http://www.ecmwf.int/products/data/software/download/software_files/
distname            Magics++-${version}
checksums           md5     6abfa2bd917073dc12e52f32ce215770 \
                    sha1    75ad6aa2ee5533789e13ed79d2b4b6e952b72379 \
                    rmd160  c4e72c984c8a7b119bd56a2aa9dd173360a83574
long_description \
    Magics++ is the latest generation of the ECMWF's Meteorological plotting \
    software MAGICS (Meteorological Applications Graphics Integrated Colour System) \
    redesigned in C++.  Magics++ offers interfaces in Fortran, C, and MagML, \
    a plot description language based on XML.  The library supports the plotting of \
    contours, wind fields, observations, satellite images, symbols, text, axis \
    and graphs (including boxplots). Input data can be in GRIB 1 and 2, BUFR and NetCDF \
    or retrieved from an ODB database. The produced meteorological plots can be saved \
    in various formats, such as PostScript, EPS, PDF, GIF, PNG and SVG.

depends_lib         port:grib_api \
                    port:emos \
                    port:netcdf \
                    port:mesa \
                    port:xorg-libXau \
                    port:xorg-libXdmcp \
                    port:p5.12-xml-parser \
                    port:gd2 \
                    path:lib/pkgconfig/pango.pc:pango \
                    port:ghostscript

use_parallel_build  no
universal_variant   no
if {![variant_isset gcc43] && ![variant_isset gcc44]} {
    default_variants    +gcc45
}

patchfiles          patch-src-Makefile.in.diff \
                    patch-configure.diff \
                    patch-magics-config.in.diff
post-patch {
    foreach f {TeDefines.h TeMappedMemory.h TeMutex.h TeThread.h TeThreadSignal.h TeMappedMemory.cpp TeMutex.cpp TeThread.cpp TeThreadSignal.cpp TeUtils.cpp TeRasterMemManager.cpp} {
        reinplace "s:== TePLATFORMCODE_AIX:== TePLATFORMCODE_AIX || TePLATFORM == TePLATFORMCODE_APPLE:" ${worksrcpath}/src/terralib/kernel/${f}
    }
    reinplace "s:\.so:.dylib:" ${worksrcpath}/magics-config.in
    reinplace "s:gfortran:${configure.f77}:" ${worksrcpath}/magics-config.in
    reinplace "s:CYGWIN\):CYGWIN) || defined(__APPLE_CC__):" ${worksrcpath}/src/magics.h
    reinplace "s:__unix__:__unix__ || defined __APPLE__:" ${worksrcpath}/src/terralib/kernel/TeUtils.cpp
    reinplace "s:FreeBSD__ \):FreeBSD__ ) || defined(__APPLE__):" ${worksrcpath}/src/terralib/kernel/TeUtils.cpp
}

configure.env-append        LIBS=\"-lgrib_api -lopenjpeg -lpng\"
configure.cppflags-append   -I${prefix}/include/freetype2/
configure.args-append       --disable-dependency-tracking \
                            --disable-qt \
                            --disable-json \
                            --enable-cairo \
                            --enable-bufr \
                            --with-grib_api=${prefix} \
                            --with-netcdf=${prefix} \
                            --with-emos-libraries=${prefix}/lib \
                            --with-gs-font-dir=${prefix}/share/ghostscript/fonts

variant gcc43 conflicts gcc44 gcc45 description {for emos +gcc43} {
    configure.ldflags-append    -lgrib_api -lopenjpeg -lpng -lemosR64 -lgfortran -lgfortranbegin -lnetcdf_c++ -lnetcdf
    configure.compiler      macports-gcc-4.3
}

variant gcc44 conflicts gcc43 gcc45 description {for emos +gcc44} {
    configure.ldflags-append    -lgrib_api -lopenjpeg -lpng -lemosR64 -lgfortran -lgfortranbegin -lnetcdf_c++ -lnetcdf
    configure.compiler      macports-gcc-4.4
}

variant gcc45 conflicts gcc43 gcc44 description {for emos +gcc45} {
    configure.ldflags-append    -lgrib_api -lopenjpeg -lpng -lemosR64 -lgfortran -lgfortranbegin -lnetcdf_c++ -lnetcdf
    configure.compiler      macports-gcc-4.5
}

#variant g95 conflicts gcc43 gcc44 description {for emos +g95} {
#    configure.ldflags-append    -lgrib_api -lopenjpeg -lpng -lemosR64 -lf95 -lnetcdf_c++ -lnetcdf
#    configure.f77           ${prefix}/bin/g95
#}
