# -*- 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 60187 2009-11-04 18:19:55Z adfernandes@macports.org $

PortSystem          1.0

name                pymol
version             1.2r2
revision            2
categories          science
maintainers         bromo.med.uc.edu:howarth
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
svn.revision        3866
worksrcdir          pymol

depends_lib         port:glut port:freetype port:libpng port:python26 port:py26-pmw port:py26-numeric port:mesa
depends_run         port:xdpyinfo

patchfiles          pymol-build.patch
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] } {
        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}"
}

variant gcc43 description conflicts gcc44 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 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
}

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.6 -O ${prefix}/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/compileall.py -d ${prefix}/lib/pymol/modules ${destroot}${prefix}/lib/pymol/modules"
}
