# -*- 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 77860 2011-04-15 06:08:53Z ryandesign@macports.org $

PortSystem          1.0

name                pymol-devel
svn.revision        3937
version             1.3.${svn.revision}
revision            2
conflicts           pymol
categories          science
maintainers         adfernandes openmaintainer
description         Molecular graphics system
long_description    PyMOL is a molecular graphics system with an embedded Python interpreter \
                    designed for real-time visualization and rapid generation of high-quality \
                    molecular graphics images and animations.

platforms           darwin

homepage            http://www.pymol.org/

master_sites        sourceforge
fetch.type          svn
svn.url             https://pymol.svn.sourceforge.net/svnroot/pymol/trunk/pymol
worksrcdir          pymol

depends_lib         port:freetype port:libpng port:python27 port:py27-pmw port:py27-numeric port:mesa
depends_run         port:xdpyinfo

patchfiles          pymol-build.patch pymol-build.patch2
use_configure       no

post-patch {
    reinplace  "s|@PREFIX@|${prefix}|g" ${worksrcpath}/contrib/modules/Makefile.pre.in.src
    reinplace  "s|@PREFIX@|${prefix}|g" ${worksrcpath}/setup/Rules.osx-fink
    reinplace  "s|@PREFIX@|${prefix}|g" ${worksrcpath}/setup/pymol.com.osx-fink
    reinplace  "s|-Wno-long-double||g" ${worksrcpath}/setup/Rules.osx-fink
    reinplace  "s|/usr/X11R6|${prefix}|g" ${worksrcpath}/setup/Rules.osx-fink
    reinplace  "s|/usr/X11R6|${prefix}|g" ${worksrcpath}/modules/pymol/__init__.py
}

post-configure {
    copy ${worksrcpath}/setup/Rules.osx-fink ${worksrcpath}/Rules.delsci
    if { [variant_isset gcc43] || [variant_isset gcc44] || [variant_isset gcc45] } {
        reinplace  "s| -no-cpp-precomp||g"          ${worksrcpath}/Rules.delsci
        reinplace  "s|^BUILD = |BUILD = -lstdc++ |" ${worksrcpath}/Rules.delsci
    }
}

use_parallel_build  no
pre-build {
    build.args  -f Makefile.delsci \
                CC="${configure.cc}" CXX="${configure.cxx}"
}

default_variants +gcc45

variant gcc43 description conflicts gcc44 gcc45 description {build using macports-gcc-4.3} {
    depends_lib-append  port:gcc43
    # the current pymol makefile does not honour CC and CXX environment variables
    build.args-delete   CC="${configure.cc}" CXX="${configure.cxx}"
    build.args-append   CC="${prefix}/bin/gcc-mp-4.3" CXX="${prefix}/bin/g++-mp-4.3"
    configure.compiler  macports-gcc-4.3
}

variant gcc44 description conflicts gcc43 gcc45 description {build using macports-gcc-4.4} {
    depends_lib-append  port:gcc44
    # the current pymol makefile does not honour CC and CXX environment variables
    build.args-delete   CC="${configure.cc}" CXX="${configure.cxx}"
    build.args-append   CC="${prefix}/bin/gcc-mp-4.4" CXX="${prefix}/bin/g++-mp-4.4"
    configure.compiler  macports-gcc-4.4
}

variant gcc45 description conflicts gcc43 gcc44 description {build using macports-gcc-4.5} {
    depends_lib-append  port:gcc45
    # the current pymol makefile does not honour CC and CXX environment variables
    build.args-delete   CC="${configure.cc}" CXX="${configure.cxx}"
    build.args-append   CC="${prefix}/bin/gcc-mp-4.5" CXX="${prefix}/bin/g++-mp-4.5"
    configure.compiler  macports-gcc-4.5
}

destroot {
    file mkdir ${destroot}${prefix}/lib/pymol/bin
    copy  ${worksrcpath}/setup/pymol.com.osx-fink ${destroot}${prefix}/lib/pymol/bin/pymol
    ln -s ${prefix}/lib/pymol/bin/pymol ${destroot}${prefix}/bin
    foreach d {data modules examples test scripts} {
        copy ${worksrcpath}/${d} ${destroot}${prefix}/lib/pymol
    }
}

post-destroot {
    system "${prefix}/bin/python2.7 -O ${prefix}/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/compileall.py -d ${prefix}/lib/pymol/modules ${destroot}${prefix}/lib/pymol/modules"
}
