瀏覽代碼

cppdb: enable postgresql support

Also:
Fix mysql support.
Add hash file.
Forcibly disable automatic db support when it's not selected.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Gustavo Zacarias 10 年之前
父節點
當前提交
2641edb8c4
共有 4 個文件被更改,包括 40 次插入3 次删除
  1. 2 2
      package/cppdb/Config.in
  2. 23 0
      package/cppdb/cppdb-0001-mysql-library-suffix.patch
  3. 3 0
      package/cppdb/cppdb.hash
  4. 12 1
      package/cppdb/cppdb.mk

+ 2 - 2
package/cppdb/Config.in

@@ -5,7 +5,7 @@ config BR2_PACKAGE_CPPDB
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	# Can be built without them but it's useless
-	depends on BR2_PACKAGE_MYSQL || BR2_PACKAGE_SQLITE
+	depends on BR2_PACKAGE_MYSQL || BR2_PACKAGE_POSTGRESQL || BR2_PACKAGE_SQLITE
 	help
 	  CppDB is an SQL connectivity library that is designed to provide
 	  platform and Database independent connectivity API similarly
@@ -14,6 +14,6 @@ config BR2_PACKAGE_CPPDB
 	  http://cppcms.com/sql/cppdb/
 
 comment "cppdb needs a toolchain w/ C++, threads, dynamic library"
-	depends on BR2_PACKAGE_MYSQL || BR2_PACKAGE_SQLITE
+	depends on BR2_PACKAGE_MYSQL || BR2_PACKAGE_POSTGRESQL || BR2_PACKAGE_SQLITE
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
 		BR2_PREFER_STATIC_LIB

+ 23 - 0
package/cppdb/cppdb-0001-mysql-library-suffix.patch

@@ -0,0 +1,23 @@
+Add mysql/ to PATH_SUFFIXES for the library search for mysql.
+
+On common distros libmysqlclient* is installed and/or symlinked
+into /usr/lib.
+Since we install the libraries into /usr/lib/mysql alone cppdb
+fails to properly link to it giving runtime errors.
+
+Status: https://sourceforge.net/p/cppcms/bugs/135/
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura cppdb-0.3.1.orig/CMakeLists.txt cppdb-0.3.1/CMakeLists.txt
+--- cppdb-0.3.1.orig/CMakeLists.txt	2014-10-17 11:05:57.875429748 -0300
++++ cppdb-0.3.1/CMakeLists.txt	2014-10-17 11:12:57.486775484 -0300
+@@ -196,7 +196,7 @@
+ endif()
+ 
+ if(NOT DISABLE_MYSQL)
+-	find_library(MYSQL_LIB mysqlclient)
++	find_library(MYSQL_LIB mysqlclient PATH_SUFFIXES mysql)
+ 	find_path(MYSQL_PATH mysql.h PATH_SUFFIXES mysql)
+ 	if(MYSQL_LIB AND MYSQL_PATH)
+ 		include_directories(${MYSQL_PATH})

+ 3 - 0
package/cppdb/cppdb.hash

@@ -0,0 +1,3 @@
+# From http://sourceforge.net/projects/cppcms/files/cppdb/0.3.1/
+md5	129f1d75f46114b79160b93807d5223f	cppdb-0.3.1.tar.bz2
+sha1	c0410dcc482d71696ac9206044b3a3ac03d31f96	cppdb-0.3.1.tar.bz2

+ 12 - 1
package/cppdb/cppdb.mk

@@ -14,7 +14,18 @@ CPPDB_LICENSE_FILES = LICENSE_1_0.txt MIT.txt
 
 ifeq ($(BR2_PACKAGE_MYSQL),y)
 CPPDB_DEPENDENCIES += mysql
-CPPDB_CONF_OPTS += -DMYSQL_LIB=$(STAGING_DIR)/usr/lib/mysql
+else
+CPPDB_CONF_OPTS += -DDISABLE_MYSQL=ON
+endif
+
+ifeq ($(BR2_PACKAGE_POSTGRESQL),y)
+CPPDB_DEPENDENCIES += postgresql
+else
+CPPDB_CONF_OPTS += -DDISABLE_PQ=ON
+endif
+
+ifeq ($(BR2_PACKAGE_SQLITE),)
+CPPDB_CONF_OPTS += -DDISABLE_SQLITE=ON
 endif
 
 $(eval $(cmake-package))