libpqxx: adding Makefile, Config.in and patch
authorIgor Bezzubchenko <redacted>
Wed, 30 Dec 2020 21:46:09 +0000 (00:46 +0300)
committerIgor Bezzubchenko <redacted>
Wed, 30 Dec 2020 21:51:00 +0000 (00:51 +0300)
Signed-off-by: Igor Bezzubchenko <redacted>
libs/libpqxx/Config.in [new file with mode: 0644]
libs/libpqxx/Makefile [new file with mode: 0644]
libs/libpqxx/patches/100-install-test-executor.patch [new file with mode: 0644]

diff --git a/libs/libpqxx/Config.in b/libs/libpqxx/Config.in
new file mode 100644 (file)
index 0000000..c8407d8
--- /dev/null
@@ -0,0 +1,26 @@
+menu "Options"
+        depends on PACKAGE_libpqxx
+
+config LIBPQXX_STATIC
+    bool "Build static library"
+       default y
+       help
+               Build static (.a) library
+
+config LIBPQXX_SHARED
+    bool "Build and install shared library"
+       default n
+       help
+               Build and install shared (.so) library
+
+config LIBPQXX_INSTALL_TEST
+    bool "Build and install test suite"
+       default n
+       depends on LIBPQXX_STATIC || LIBPQXX_SHARED
+       help
+               Build and install a test suite against a real server.
+               One can run this suite on a target platform to ensure
+               that the library is built the way it should and operating
+               correctly.
+
+endmenu
diff --git a/libs/libpqxx/Makefile b/libs/libpqxx/Makefile
new file mode 100644 (file)
index 0000000..a9789a7
--- /dev/null
@@ -0,0 +1,53 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libpqxx
+PKG_VERSION:=7.3.0
+PKG_RELEASE:=1
+PKG_INSTALL:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/jtv/libpqxx
+PKG_SOURCE_VERSION:=$(PKG_VERSION)
+PKG_MIRROR_HASH:=c176771dbbf02e38b84a8f9bf986a83587e2d86d9e0d2238e2a17a036e865951
+
+CMAKE_INSTALL:=1
+
+PKG_MAINTAINER:=Igor Bezzubchenko <garikello@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/libpqxx
+       SECTION:=libs
+       CATEGORY:=Libraries
+       DEPENDS:=+libpq +libstdcpp
+       TITLE:=PostgreSQL client library (C++ interface)
+       URL:=http://pqxx.org/development/libpqxx
+       SUBMENU:=Database
+endef
+
+define Package/libpqxx/config
+       source "$(SOURCE)/Config.in"
+endef
+
+CMAKE_OPTIONS += \
+       -DBUILD_DOC=off \
+       $(if $(CONFIG_LIBPQXX_STATIC), -DBUILD_STATIC_LIBS=on) \
+       $(if $(CONFIG_LIBPQXX_SHARED), -DBUILD_SHARED_LIBS=on)
+
+ifeq ($(CONFIG_LIBPQXX_INSTALL_TEST),y)
+       CMAKE_OPTIONS += -DINSTALL_TEST=on -DSKIP_BUILD_TEST=off
+else
+       CMAKE_OPTIONS += -DINSTALL_TEST=off -DSKIP_BUILD_TEST=on
+endif
+
+define Package/libpqxx/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(if $(CONFIG_LIBPQXX_SHARED), \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/libpqxx*.so $(1)/usr/lib/)
+       $(if $(CONFIG_LIBPQXX_INSTALL_TEST), \
+               $(CP) $(PKG_INSTALL_DIR)/usr/bin/libpqxx* $(1)/usr/bin/)
+endef
+
+$(eval $(call BuildPackage,libpqxx))
diff --git a/libs/libpqxx/patches/100-install-test-executor.patch b/libs/libpqxx/patches/100-install-test-executor.patch
new file mode 100644 (file)
index 0000000..d9eb3ff
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -14,3 +14,7 @@ add_test(
+     WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
+     COMMAND runner
+ )
++
++if(INSTALL_TEST)
++      install(PROGRAMS runner TYPE BIN RENAME libpqxx-test-runner)
++endif()
git clone https://git.99rst.org/PROJECT