From 9f92d9d3fed93b2052d4e2a1a4e5e73f34f2f44a Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 13 Mar 2015 03:07:14 +0000 Subject: soci: Add recipe Define PACKAGECONFIG to enable a given backend of choice by default its 'empty' Change-Id: Ie1123af658ca94d2fe22a3ca1a32dfb47d58979e Signed-off-by: Khem Raj Signed-off-by: Martin Jansa --- .../recipes-support/soci/soci/soci_libdir.patch | 28 +++++++++++++ meta-oe/recipes-support/soci/soci_3.2.2.bb | 48 ++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 meta-oe/recipes-support/soci/soci/soci_libdir.patch create mode 100644 meta-oe/recipes-support/soci/soci_3.2.2.bb diff --git a/meta-oe/recipes-support/soci/soci/soci_libdir.patch b/meta-oe/recipes-support/soci/soci/soci_libdir.patch new file mode 100644 index 0000000000..00a1a5c862 --- /dev/null +++ b/meta-oe/recipes-support/soci/soci/soci_libdir.patch @@ -0,0 +1,28 @@ +Define SOCI_LIBDIR only if its not passed via environemnt. In OE we +want to set it per our choice since we use 'lib' for 64bit unless we +are using multilib + +-Khem + +Index: soci-3.2.2/CMakeLists.txt +=================================================================== +--- soci-3.2.2.orig/CMakeLists.txt ++++ soci-3.2.2/CMakeLists.txt +@@ -69,11 +69,12 @@ include(SociDependencies) + ############################################################################### + # Installation + ############################################################################### +- +-if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4) +- set(SOCI_LIBDIR "lib") +-else() +- set(SOCI_LIBDIR "lib64") ++if(NOT DEFINED SOCI_LIBDIR) ++ if(APPLE OR CMAKE_SIZEOF_VOID_P EQUAL 4) ++ set(SOCI_LIBDIR "lib") ++ else() ++ set(SOCI_LIBDIR "lib") ++ endif() + endif() + + set(BINDIR "bin" CACHE PATH "The directory to install binaries into.") diff --git a/meta-oe/recipes-support/soci/soci_3.2.2.bb b/meta-oe/recipes-support/soci/soci_3.2.2.bb new file mode 100644 index 0000000000..887f5a2b2b --- /dev/null +++ b/meta-oe/recipes-support/soci/soci_3.2.2.bb @@ -0,0 +1,48 @@ +# Copyright (C) 2015 Khem Raj +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "The C++ Database Access Library" +HOMEPAGE = "http://soci.sourceforge.net" +LICENSE = "BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c" +SECTION = "libs" +DEPENDS = "boost" + + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${P}/${P}.tar.gz \ + file://soci_libdir.patch \ + " +SRC_URI[md5sum] = "bc3c35f6cd3f80a1be19fe30b3c111bf" +SRC_URI[sha256sum] = "30ea2f4d26639ef5b5cdc24fb300b3896746243dbb77b743582de2ff443ccb1c" + +TESTCONFIG = '-DSOCI_TEST_EMPTY_CONNSTR="dummy" -DSOCI_TEST_SQLITE3_CONNSTR="test.db" \ + -DSOCI_TEST_POSTGRESQL_CONNSTR:STRING="dbname=soci_test" \ + -DSOCI_TEST_MYSQL_CONNSTR:STRING="db=soci_test user=oe password=oe"' + +OBASEDIR ?= "/opt/oracle" +OINCDIR = "rdbms/public" +OLIBDIR = "lib" + +PACKAGECONFIG[sqlite3] = "-DSOCI_SQLITE3=ON,-DSOCI_SQLITE3=OFF,sqlite3," +PACKAGECONFIG[mysql] = "-DSOCI_MYSQL=ON,-DSOCI_MYSQL=OFF,mariadb," +PACKAGECONFIG[postgresql] = "-DSOCI_POSTGRESQL=ON,-DSOCI_POSTGRESQL=OFF,postgresql," +PACKAGECONFIG[odbc] = "-DSOCI_ODBC=ON,-DSOCI_ODBC=OFF,," +PACKAGECONFIG[empty] = "-DSOCI_EMPTY=ON,-DSOCI_EMPTY=OFF,," +PACKAGECONFIG[oracle] = "-DWITH_ORACLE=ON --with-oracle-include=${OINCDIR} --with-oracle-lib=${OLIBDIR},-DWITH_ORACLE=OFF,," +PACKAGECONFIG[ptest] = "${TESTCONFIG},,," + +# enable your backend by default we enable 'empty' +PACKAGECONFIG ??= "empty" + +# Take the flags added by PACKAGECONFIG and pass them to cmake. +EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}" + +inherit cmake + +PACKAGES += "${PN}-sqlite3 ${PN}-mysql ${PN}-postgresql ${PN}-odbc ${PN}-oracle" + +FILES_${PN}-sqlite3 = "${libdir}/lib${BPN}_sqlite3.so.*" +FILES_${PN}-mysql = "${libdir}/lib${BPN}_mysql.so.*" +FILES_${PN}-postgresql = "${libdir}/lib${BPN}_postgresql.so.*" +FILES_${PN}-odbc = "${libdir}/lib${BPN}_odbc.so.*" +FILES_${PN}-oracle = "${libdir}/lib${BPN}_oracle.so.*" -- cgit 1.2.3-korg