# -*- 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 48911 2009-03-31 10:02:34Z ryandesign@macports.org $

PortSystem  1.0

name        libpqxx26
version     2.6.9

categories  databases devel

maintainers dweber openmaintainer

description Official C++ client API for PostgreSQL

long_description \
libpqxx is the official C++ client API for PostgreSQL, the enterprise-strength \
open-source database software.  There are many similar libraries for PostgreSQL \
and for other databases, some of them database independent.  Most of these, \
however, are fairly C like in their programming style, and fail to take \
advantage of the full power of the C++ language as it has matured since \
the acceptance of the Standard in 1996.  What libpqxx brings you is effective \
use of templates to reduce the inconvenience of dealing with type conversions, \
standard C++ strings to keep you from having to worry about buffer allocation \
and overflow attacks, exceptions to take the tedious and error prone plumbing \
around error handling out of your hands, constructors and destructors to bring \
resource management under control, and even basic object orientation to give \
you some extra reliability features that would be hard to get with most other \
database interfaces.

homepage        http://pqxx.org/development/libpqxx/
master_sites    http://pqxx.org/download/software/libpqxx/

distname        libpqxx-${version}

checksums \
    md5 0b0c64af41dfdeea8556dc359994e1cb \
    sha1 8be9dcd0375337b170d5c94370fa896911d361f1 \
    rmd160 c456b5a3ed3c96963aad334d3504ed0443a8f63e

set server      postgresql83

platforms       darwin
depends_build   path:bin/pkg-config:pkgconfig
depends_lib     port:${server}

configure.env-append \
    PG_CONFIG=${prefix}/lib/${server}/bin/pg_config

configure.args-append \
    --enable-shared

# Enable tests after the build phase; see
# http://guide.macports.org/#reference.phases.test
# http://pqxx.org/development/libpqxx/browser/trunk/README?rev=latest
# http://pqxx.org/development/libpqxx/wiki/TestDocs

test.run        no
test.cmd        make
test.target     check

pre-test {
    system "initdb -D ${worksrcdir}/test_libpqxx"
    system "pg_ctl -w -D ${worksrcdir}/test_libpqxx -l ${worksrcdir}/test_libpqxx/logfile -o \"-p 5455\" start"
    # test for existence of ${worksrcdir}/test_libpqxx/postmaster.pid to indicate success

    # PGDATABASE    (name of database; defaults to your user name)
    # PGHOST        (database server; defaults to local machine)
    # PGPORT        (PostgreSQL port to connect to; default is 5432)
    # PGUSER        (your PostgreSQL user ID; defaults to your login name)
    # PGPASSWORD    (your PostgreSQL password, if needed)
    test.env-append \
        PGDATABASE=${worksrcdir}/test_libpqxx \
        PGPORT=5455
        #PGUSER
        #PGPASSWORD
}

post-test {
    system "pg_ctl -w -D ${worksrcdir}/test_libpqxx stop -m fast"
    system "rm -rf ${worksrcdir}/test_libpqxx"
}

