From b70088d31a8d3e78409f4247c1f2db9092e828e3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 22 Jul 2011 20:43:35 +0200 Subject: Get rid of libpq-fe.h inclusion in public headers The problem with libpq-fe.h is that it is installed in unpredictable places on different platforms. As a result, a user that uses ODB with PostgreSQL (and who doesn't really know or care about libpq) is forced to make sure their application is able to find and include libpq-fe.h correctly. Luckily for us, we only use a handful of libpq pointers in public headers and the workaround is to forward declare them and use that instead of including libpq-fe.h (which is instead included in source files). --- odb/pgsql/pgsql-fwd.hxx | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 odb/pgsql/pgsql-fwd.hxx (limited to 'odb/pgsql/pgsql-fwd.hxx') diff --git a/odb/pgsql/pgsql-fwd.hxx b/odb/pgsql/pgsql-fwd.hxx new file mode 100644 index 0000000..45f085d --- /dev/null +++ b/odb/pgsql/pgsql-fwd.hxx @@ -0,0 +1,21 @@ +// file : odb/pgsql/pgsql-fwd.hxx +// author : Boris Kolpackov +// copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC +// license : GNU GPL v2; see accompanying LICENSE file + +#ifndef ODB_PGSQL_PGSQL_FWD_HXX +#define ODB_PGSQL_PGSQL_FWD_HXX + +#include + +// Forward declaration for some of the types defined in libpq-fe.h. This +// allows us to avoid having to include libpq-fe.h in public headers. +// +typedef unsigned int Oid; + +typedef struct pg_conn PGconn; +typedef struct pg_result PGresult; + +#include + +#endif // ODB_PGSQL_PGSQL_FWD_HXX -- cgit v1.1