# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0

name                psqlODBC
version             16.00.0000
categories          databases
maintainers         panulla.com:macports
license             LGPL-2

description         Official ODBC driver for the PostgreSQL database.

long_description \
    psqlODBC allows ODBC-compliant applications to connect to \
    PostgreSQL database servers.

homepage            https://odbc.postgresql.org
master_sites        postgresql:odbc/versions/src/

distname            psqlodbc-${version}

checksums           rmd160  b6ead34c855806f24bd0116cd35ffdf1031fbd97 \
                    sha256  afd892f89d2ecee8d3f3b2314f1bd5bf2d02201872c6e3431e5c31096eca4c8b \
                    size    946997

depends_lib         port:libtool

variant iodbc conflicts unixodbc description {Use iODBC} {
    depends_lib-append          port:libiodbc
    configure.args-append       --with-iodbc=${prefix}
}

variant unixodbc conflicts iodbc description {Use unixODBC} {
    depends_lib-append          port:unixODBC
    configure.args-append       --with-unixodbc=${prefix}
}

if {![variant_isset iodbc]} {
    default_variants +unixodbc
}

set pgsql_suffixes {82 83 84 90 91 92 93 94 95 96 10 11 12 13 14 15 16}

set pgsql_ports {}
foreach s ${pgsql_suffixes} {
    lappend pgsql_ports postgresql${s}
}

foreach s ${pgsql_suffixes} {
    set p postgresql${s}
    set v [string index ${s} 0].[string index ${s} 1]
    set i [lsearch -exact ${pgsql_ports} ${p}]
    set c [lreplace ${pgsql_ports} ${i} ${i}]
    variant ${p} description "Build with PostgreSQL ${v}" conflicts {*}${c} "
        depends_lib-append  port:${p}

        configure.args-append   --with-libpq=${prefix}/lib/${p}/bin/pg_config
    "
}

proc has_pgsql_variant {} {
    global pgsql_ports
    foreach p ${pgsql_ports} {
        if {[variant_isset ${p}]} {
            return 1
        }
    }
    return 0
}

if {![has_pgsql_variant]} {
    set p [lindex ${pgsql_ports} end]
    default_variants +${p}

    if {![has_pgsql_variant]} {
        error "One of the following variants must be set: [join ${pgsql_ports}]"
    }
}

