libgpiod: introduce libgpiodcxx package for C++ binding 20609/head
authorMichael Heimpold <mhei@heimpold.de>
Thu, 9 Mar 2023 06:54:48 +0000 (07:54 +0100)
committerMichael Heimpold <mhei@heimpold.de>
Thu, 9 Mar 2023 06:57:07 +0000 (07:57 +0100)
This adds a new package for the C++ binding.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
libs/libgpiod/Makefile

index 862b6ced045fd1f66c83589581b3fbd6712aefb8..6320c240164ff8f13c15d85e5d9f535cc8a7878d 100644 (file)
@@ -26,6 +26,12 @@ PYTHON3_PKG_BUILD:=0
 include $(INCLUDE_DIR)/package.mk
 include ../../lang/python/python3-package.mk
 
+ifneq ($(CONFIG_PACKAGE_libgpiodcxx),)
+CONFIGURE_ARGS += --enable-bindings-cxx
+else
+CONFIGURE_ARGS += --disable-bindings-cxx
+endif
+
 ifneq ($(CONFIG_PACKAGE_gpiod-tools),)
 CONFIGURE_ARGS += --enable-tools
 endif
@@ -61,6 +67,18 @@ define Package/gpiod-tools/description
   (gpiod stands for GPIO device).
 endef
 
+define Package/libgpiodcxx
+  SECTION:=libs
+  CATEGORY:=Libraries
+  URL:=https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
+  TITLE:=C++ binding for libgpiod
+  DEPENDS:=+libstdcpp +libgpiod
+endef
+
+define Package/libgpiodcxx/description
+  This package contains the C++ binding for libgpiod.
+endef
+
 define Package/python3-gpiod
   SECTION:=lang
   CATEGORY:=Languages
@@ -98,6 +116,15 @@ define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libgpiod.pc $(1)/usr/lib/pkgconfig/
 
+    ifneq ($(CONFIG_PACKAGE_libgpiodcxx),)
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/gpiodcxx $(1)/usr/include/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/gpiod.hpp $(1)/usr/include/
+
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgpiodcxx.{so*,a} $(1)/usr/lib/
+
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libgpiodcxx.pc $(1)/usr/lib/pkgconfig/
+    endif
+
     ifneq ($(CONFIG_PACKAGE_python3-gpiod),)
        $(INSTALL_DIR) $(1)$(PYTHON3_PKG_DIR)
        $(CP) $(PKG_INSTALL_DIR)$(PYTHON3_PKG_DIR)/* $(1)$(PYTHON3_PKG_DIR)
@@ -109,6 +136,11 @@ define Package/libgpiod/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgpiod.so.* $(1)/usr/lib/
 endef
 
+define Package/libgpiodcxx/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgpiodcxx.so.* $(1)/usr/lib/
+endef
+
 define Package/gpiod-tools/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
@@ -119,6 +151,7 @@ define Py3Package/python3-gpiod/install
 endef
 
 $(eval $(call BuildPackage,libgpiod))
+$(eval $(call BuildPackage,libgpiodcxx))
 $(eval $(call BuildPackage,gpiod-tools))
 $(eval $(call Py3Package,python3-gpiod))
 $(eval $(call BuildPackage,python3-gpiod))