From 1d16ff67bed7f1987eb3273999d46511ea950a7b Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Wed, 15 Sep 2010 13:27:01 +0000 Subject: [PATCH] SOCI is a database access library for C++ that makes the illusion of embedding SQL queries in the regular C++ code, staying entirely within the Standard C++. The idea is to provide C++ programmers a way to access SQL databases in the most natural and intuitive way. If you find existing libraries too difficult for your needs or just distracting, SOCI can be a good alternative. WWW: http://soci.sourceforge.net/ PR: ports/150527 Submitted by: Julien Laffaye --- databases/Makefile | 1 + databases/soci/Makefile | 60 +++++++++++++++++++++++++++++ databases/soci/distinfo | 3 ++ databases/soci/files/pkg-message.in | 2 + databases/soci/pkg-descr | 7 ++++ databases/soci/pkg-plist | 53 +++++++++++++++++++++++++ 6 files changed, 126 insertions(+) create mode 100644 databases/soci/Makefile create mode 100644 databases/soci/distinfo create mode 100644 databases/soci/files/pkg-message.in create mode 100644 databases/soci/pkg-descr create mode 100644 databases/soci/pkg-plist diff --git a/databases/Makefile b/databases/Makefile index 3bf1498f87d5..bbae8fbcff56 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -722,6 +722,7 @@ SUBDIR += skytools SUBDIR += slony1 SUBDIR += slony1v2 + SUBDIR += soci SUBDIR += spatialite SUBDIR += sqlbuddy SUBDIR += sqlcached diff --git a/databases/soci/Makefile b/databases/soci/Makefile new file mode 100644 index 000000000000..341764c5a9fd --- /dev/null +++ b/databases/soci/Makefile @@ -0,0 +1,60 @@ +# New ports collection makefile for: soci +# Date created: 2010-09-13 +# Whom: Julien Laffaye +# +# $FreeBSD$ +# + +PORTNAME= soci +PORTVERSION= 3.0.0 +CATEGORIES= databases databases +MASTER_SITES= SF +MASTER_SITE_SUBDIR= ${PORTNAME}/${PORTNAME}/${PORTNAME}-${PORTVERSION} + +MAINTAINER= kimelto@gmail.com +COMMENT= The C++ Database Access Library + +LICENSE= MIT +LICENSE_FILE= ${WRKSRC}/LICENSE_1_0.txt + +MAKE_JOBS_SAFE= yes +USE_LDCONFIG= yes +USE_TCL_BUILD= 85 +HAS_CONFIGURE= yes +CONFIGURE_ARGS= --include-prefix=${PREFIX}/include/soci \ + --lib-prefix=${PREFIX}/lib +ALL_TARGET= build_libs +SUB_FILES= pkg-message +PKGMESSAGE= ${WRKDIR}/pkg-message + +OPTIONS= MYSQL "Build MySQL driver" on \ + PGSQL "Build PostgreSQL driver" on + +.include + +.ifdef (WITH_MYSQL) +USE_MYSQL= yes +PLIST_SUB+= MYSQL="" +CONFIGURE_ARGS+=--mysql-include=${LOCALBASE}/include/mysql \ + --mysql-lib=${LOCALBASE}/lib/mysql +.else +PLIST_SUB+= MYSQL="@comment " +.endif + +.ifdef (WITH_PGSQL) +USE_PGSQL= yes +PLIST_SUB+= PGSQL="" +CONFIGURE_ARGS+=--postgresql-include=${LOCALBASE}/include \ + --postgresql-lib=${LOCALBASE}/lib +.else +PLIST_SUB+= PGSQL="@comment " +.endif + +post-patch: + @${REINPLACE_CMD} -e "s|/usr/local|${LOCALBASE}|" ${WRKSRC}/configure + @${REINPLACE_CMD} -e "s/ldconfig/true/" ${WRKSRC}/build/unix/install.tcl + +post-install: + @${CAT} ${PKGMESSAGE} + +.include diff --git a/databases/soci/distinfo b/databases/soci/distinfo new file mode 100644 index 000000000000..16cad45d599c --- /dev/null +++ b/databases/soci/distinfo @@ -0,0 +1,3 @@ +MD5 (soci-3.0.0.tar.gz) = 1bf7dd244764e53557c1ecc01fdfac96 +SHA256 (soci-3.0.0.tar.gz) = 896a79cbf1859971f4887eec8fa9519b17749c930d6901a6aa1701e556d26ece +SIZE (soci-3.0.0.tar.gz) = 195545 diff --git a/databases/soci/files/pkg-message.in b/databases/soci/files/pkg-message.in new file mode 100644 index 000000000000..cafb32e07b1b --- /dev/null +++ b/databases/soci/files/pkg-message.in @@ -0,0 +1,2 @@ +If you use dynamically loaded backends, you have to set the environment variable +SOCI_BACKENDS_PATH to %%PREFIX%%/lib diff --git a/databases/soci/pkg-descr b/databases/soci/pkg-descr new file mode 100644 index 000000000000..cec8e6386058 --- /dev/null +++ b/databases/soci/pkg-descr @@ -0,0 +1,7 @@ +SOCI is a database access library for C++ that makes the illusion of embedding +SQL queries in the regular C++ code, staying entirely within the Standard C++. +The idea is to provide C++ programmers a way to access SQL databases in the most +natural and intuitive way. If you find existing libraries too difficult for your +needs or just distracting, SOCI can be a good alternative. + +WWW: http://soci.sourceforge.net/ diff --git a/databases/soci/pkg-plist b/databases/soci/pkg-plist new file mode 100644 index 000000000000..49820eae62e9 --- /dev/null +++ b/databases/soci/pkg-plist @@ -0,0 +1,53 @@ +include/soci/backend-loader.h +include/soci/blob-exchange.h +include/soci/blob.h +include/soci/boost-fusion.h +include/soci/boost-gregorian-date.h +include/soci/boost-optional.h +include/soci/boost-tuple.h +include/soci/connection-pool.h +include/soci/error.h +include/soci/exchange-traits.h +include/soci/into-type.h +include/soci/into.h +include/soci/once-temp-type.h +include/soci/prepare-temp-type.h +include/soci/procedure.h +include/soci/ref-counted-prepare-info.h +include/soci/ref-counted-statement.h +include/soci/row-exchange.h +include/soci/row.h +include/soci/rowid-exchange.h +include/soci/rowid.h +include/soci/rowset.h +include/soci/session.h +include/soci/soci-backend.h +include/soci/soci-config.h +%%MYSQL%%include/soci/soci-mysql.h +include/soci/soci-platform.h +%%PGSQL%%include/soci/soci-postgresql.h +include/soci/soci-simple.h +include/soci/soci.h +include/soci/statement.h +include/soci/transaction.h +include/soci/type-conversion-traits.h +include/soci/type-conversion.h +include/soci/type-holder.h +include/soci/type-ptr.h +include/soci/use-type.h +include/soci/use.h +include/soci/values-exchange.h +include/soci/values.h +lib/libsoci_core-3.0.0.so +lib/libsoci_core-3.so +lib/libsoci_core.a +lib/libsoci_core.so +%%MYSQL%%lib/libsoci_mysql-3.0.0.so +%%MYSQL%%lib/libsoci_mysql-3.so +%%MYSQL%%lib/libsoci_mysql.a +%%MYSQL%%lib/libsoci_mysql.so +%%PGSQL%%lib/libsoci_postgresql-3.0.0.so +%%PGSQL%%lib/libsoci_postgresql-3.so +%%PGSQL%%lib/libsoci_postgresql.a +%%PGSQL%%lib/libsoci_postgresql.so +@dirrm include/soci