soci: Add recipe

Define PACKAGECONFIG to enable a given backend of choice
by default its 'empty'

Change-Id: Ie1123af658ca94d2fe22a3ca1a32dfb47d58979e
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Khem Raj
2015-03-13 03:07:14 +00:00
committed by Martin Jansa
parent ccd12ac24c
commit 9f92d9d3fe
2 changed files with 76 additions and 0 deletions
@@ -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.")
@@ -0,0 +1,48 @@
# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
# 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.*"