@@ -83,6 +83,7 @@ N: Alessandro Partesotti <a.partesotti@gmail.com>
F: package/oatpp/
N: Alex Michel <alex.michel@wiedemann-group.com>
+F: package/libzenoh-c/
F: package/libzenoh-pico/
F: package/network-manager-openvpn/
@@ -2039,6 +2039,7 @@ menu "Networking"
source "package/libwebsock/Config.in"
source "package/libwebsockets/Config.in"
source "package/libyang/Config.in"
+ source "package/libzenoh-c/Config.in"
source "package/libzenoh-pico/Config.in"
source "package/lksctp-tools/Config.in"
source "package/mbuffer/Config.in"
new file mode 100644
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_LIBZENOH_C
+ bool "libzenoh-c"
+ depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
+ select BR2_PACKAGE_HOST_RUSTC
+ help
+ This package provides a C binding based on the main
+ Zenoh implementation written in Rust.
+
+ https://github.com/eclipse-zenoh/zenoh-c
new file mode 100644
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 3ede587dd08ccd6b0b7f0b44faeefa466eb5e18826db0b1cd93c51ffc59377ec libzenoh-c-0.10.1-rc.tar.gz
+sha256 01a44774f7b1a453595c7c6d7f7308284ba6a1059dc49e14dad6647e1d44a338 LICENSE
new file mode 100644
@@ -0,0 +1,35 @@
+################################################################################
+#
+# libzenoh-c
+#
+################################################################################
+
+LIBZENOH_C_VERSION = 0.10.1-rc
+LIBZENOH_C_SITE = $(call github,eclipse-zenoh,zenoh-c,$(LIBZENOH_C_VERSION))
+LIBZENOH_C_LICENSE = Apache-2.0 or EPL-2.0
+LIBZENOH_C_LICENSE_FILES = LICENSE
+LIBZENOH_C_INSTALL_STAGING = YES
+
+ifeq ($(BR2_ENABLE_DEBUG),y)
+LIBZENOH_C_LIB_LOCATION = $(@D)/target/$(RUSTC_TARGET_NAME)/debug
+else
+LIBZENOH_C_LIB_LOCATION = $(@D)/target/$(RUSTC_TARGET_NAME)/release
+endif
+
+define LIBZENOH_C_INSTALL_FILES
+ $(INSTALL) -D -m 644 \
+ $(LIBZENOH_C_LIB_LOCATION)/libzenohc.so \
+ $(1)/usr/lib/libzenohc.so
+endef
+
+define LIBZENOH_C_INSTALL_TARGET_CMDS
+ $(call LIBZENOH_C_INSTALL_FILES,$(TARGET_DIR))
+endef
+
+define LIBZENOH_C_INSTALL_STAGING_CMDS
+ $(call LIBZENOH_C_INSTALL_FILES,$(STAGING_DIR))
+ mkdir -p $(STAGING_DIR)/usr/include/
+ cp -dpfr $(@D)/include/* $(STAGING_DIR)/usr/include/
+endef
+
+$(eval $(cargo-package))
This package provides a C binding based on the main Zenoh implementation written in Rust. Because this lib does not provide any binaries or examples, and the cargo infra does not provide any possibility to disable the --bins option in cargo install step, we have to override the INSTALL_STAGING_CMDS and the INSTALL_TARGET_CMDS macros to prevent failing of the buildroot installation step. https://github.com/eclipse-zenoh/zenoh-c Signed-off-by: Alex Michel <alex.michel@wiedemann-group.com> --- Changes v3 -> v4: - wrapped long lines to 80 characters - use BR2_ENABLE_DEBUG variable instead of "release" path component - use RUSTC_TARGET_NAME variable instead of "*" path component - shared macro installs only the common set of files - INSTALL_TARGET_CMDS installs only the lib - INSTALL_STAGING_CMDS installs both the lib and include files Changes v2 -> v3: - bump package to 0.10.1-rc - set INSTALL_STAGING Changes v1 -> v2: - renamed zenoh-c to libzenoh-c - added myself to DEVELOPERS - fixed LICENSE - install shared libraries to staging and to target --- DEVELOPERS | 1 + package/Config.in | 1 + package/libzenoh-c/Config.in | 9 ++++++++ package/libzenoh-c/libzenoh-c.hash | 3 +++ package/libzenoh-c/libzenoh-c.mk | 35 ++++++++++++++++++++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 package/libzenoh-c/Config.in create mode 100644 package/libzenoh-c/libzenoh-c.hash create mode 100644 package/libzenoh-c/libzenoh-c.mk