# -*- 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 PortSystem 1.0 PortGroup compiler_blacklist_versions 1.0 PortGroup github 1.0 github.setup jtv libpqxx 7.9.2 categories databases devel license BSD maintainers nomaintainer 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 https://pqxx.org/development/libpqxx checksums rmd160 b94fb8de426e732ec8423cd0022d7c1c48cda7b7 \ sha256 e37d5774c39f6c802e32d7f418e88b8e530404fb54758516e884fc0ebdee6da4 \ size 774422 github.tarball_from archive set pg_ports [list postgresql13 postgresql14 postgresql15 postgresql16] set any_variant_set no foreach pg_port $pg_ports { variant ${pg_port} conflicts {*}[ldelete ${pg_ports} ${pg_port}] description "Use ${pg_port}" " depends_lib-append port:${pg_port} " if {[variant_isset ${pg_port}]} { set server ${pg_port} set any_variant_set yes } } if {!$any_variant_set} { default_variants +postgresql16 set server postgresql16 } depends_build path:bin/pkg-config:pkgconfig set py_ver 3.12 set py_ver_nodot [string map {. {}} ${py_ver}] if {${os.platform} eq "darwin" && ${os.major} < 20} { depends_build-append port:python${py_ver_nodot} post-patch { fs-traverse f ${worksrcpath} { if {[string match *.py ${f}]} { reinplace -q "s| /usr/bin/env python3|${prefix}/bin/python${py_ver}|" ${f} } } } } compiler.cxx_standard 2017 # configure is unhappy about Xcode clang being used. compiler.blacklist-append \ {clang} configure.env \ PG_CONFIG=${prefix}/lib/${server}/bin/pg_config # docs need at least xmlto, not sure what else configure.args \ --enable-shared \ --disable-documentation # Enable tests after the build phase; see # https://guide.macports.org/#reference.phases.test # https://github.com/jtv/libpqxx/blob/master/README.md # http://pqxx.org/development/libpqxx/wiki/TestDocs set dbdir ${workpath}/db set dbname test_libpqxx set dbport 5455 test.run yes test.cmd make test.target check test.post_args [portbuild::build_getjobsarg] # 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 PGDATABASE=${dbname} \ PGPORT=${dbport} #PGUSER #PGPASSWORD pre-test { system "${prefix}/lib/${server}/bin/initdb -D ${dbdir}" # "system" doesn't return for some reason, but exec does if {[catch {exec sudo -u ${macportsuser} ${prefix}/lib/${server}/bin/pg_ctl -w -D ${dbdir} -l ${dbdir}/logfile -o "-p ${dbport}" start} result]} { return -code error "could not start postgresql server" } system "${prefix}/lib/${server}/bin/createdb -p ${dbport} ${dbname}" } post-test { system "${prefix}/lib/${server}/bin/pg_ctl -w -D ${dbdir} stop -m fast" }