# -*- 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 91542 2012-04-04 19:21:54Z vince@macports.org $

PortSystem          1.0
PortGroup           cmake 1.0

name                pgRouting

version             1.05
distname            pgrouting-${version}

license             GPL-2+
categories          gis
maintainers         vince
description         Routing algorithms for PostGIS
long_description    pgRouting adds the following algorithms to PostGRES: \
                    Dijkstra: shortest path, A*: boosted dijkstra, \
                    Isochrones computation, TSP and shooting star, \
                    an algorithm to compute shortest path on real \
                    road networks.
                    
platforms           darwin
homepage            http://pgrouting.postlbs.org/
master_sites        http://download.osgeo.org/pgrouting/source

checksums           md5     bd7c106e3db3c38f7081f1ee9b0e12ae \
                    sha1    582b37eebf86416ca8936e2f3992b5319abc5325 \
                    rmd160  940a8cee6ffa0c8221b29401173aa2dfe7ed346a

depends_lib-append  port:geos \
                    port:gaul-devel \
                    port:cgal

worksrcdir            pgrouting-1.05

# Locate postgres

variant postgresql90    conflicts postgresql91 \
                        description {Use PostgreSQL 9.0} {
    
    global                  PGLIB
    global                  PGINC
    
    depends_lib-append      port:postgresql90
    set    PGLIB            ${prefix}/lib/postgresql90
    set    PGINC            ${prefix}/include/postgresql90
    
    # Configuration
    configure.env-append    PATH=$env(PATH):${PGLIB}/bin

    configure.args-append   -DPOSTGRESQL_INCLUDE_DIR=${PGINC}/server \
                            -DPOSTGRESQL_LIBRARIES=${PGLIB} \
                            -DCMAKE_C_COMPILER=${configure.cc} \
                            -DCMAKE_CXX_COMPILER=${configure.cxx} \
                            -DWITH_TSP=TRUE
}

variant postgresql91    conflicts postgresql90 \
                        description {Use PostgreSQL 9.1} {
                        
    global                  PGLIB
    global                  PGINC
    
    depends_lib-append      port:postgresql91
    set    PGLIB            ${prefix}/lib/postgresql91
    set    PGINC            ${prefix}/include/postgresql91
}

pre-fetch {
    ui_error "pgRouting is currently out of date, buggy and broken."
    return -code error "Port disabled"
}


# Configuration
pre-configure {
    configure.env-append    PATH=$env(PATH):${PGLIB}/bin

    configure.args-append   -DPOSTGRESQL_INCLUDE_DIR=${PGINC}/server \
                            -DPOSTGRESQL_LIBRARIES=${PGLIB} \
                            -DCMAKE_C_COMPILER=${configure.cc} \
                            -DCMAKE_CXX_COMPILER=${configure.cxx} \
                            -DWITH_TSP=TRUE
}

if {![variant_isset postgresql90] && ![variant_isset postgresql91]} {
    
    default_variants    +postgresql91
}

patchfiles              patch-astar_c.diff patch-dijkstra_c.diff \
                        patch-shooting_star_c.diff


