diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | adi-iio.spec | 58 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 55 insertions, 5 deletions
@@ -1 +1,2 @@ /adi-iio-1.0.1-3.tar.gz +/libiio-1.0.0.tar.gz diff --git a/adi-iio.spec b/adi-iio.spec index fb938ac..1fb66f3 100644 --- a/adi-iio.spec +++ b/adi-iio.spec @@ -1,14 +1,16 @@ %define ros_distro humble %define RosPkgName adi-iio %define src_version 1.0.1-3 +%define libiio_version 1.0.0 Name: ros-%{ros_distro}-%{RosPkgName} Version: 1.0.1 -Release: 1%{?dist} +Release: 2%{?dist} Summary: ROS package to interface with IIO devices License: Apache License, Version 2.0 URL: https://github.com/analogdevicesinc/iio_ros2/tree/humble Source0: %{RosPkgName}-%{src_version}.tar.gz +Source1: libiio-%{libiio_version}.tar.gz %global debug_package %{nil} %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') @@ -23,7 +25,6 @@ BuildRequires: ros-%{ros_distro}-rosidl-default-generators BuildRequires: ros-%{ros_distro}-rosidl-default-runtime BuildRequires: ros-%{ros_distro}-rosidl-typesupport-introspection-cpp BuildRequires: ros-%{ros_distro}-std-msgs -BuildRequires: libiio-dev Requires: ros-%{ros_distro}-ros-workspace Requires: ros-%{ros_distro}-ament-cmake @@ -32,27 +33,60 @@ Requires: ros-%{ros_distro}-ros2launch Requires: ros-%{ros_distro}-rosidl-default-runtime Requires: ros-%{ros_distro}-rosidl-typesupport-introspection-cpp Requires: ros-%{ros_distro}-std-msgs -Requires: libiio-dev + +Provides: libiio = %{libiio_version} +Provides: libiio-devel = %{libiio_version} Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} Provides: %{name}-runtime = %{version}-%{release} %description -ROS package to interface with IIO devices +ROS package to interface with IIO devices. +Vendors libiio (userspace IIO library) as it is not available on openEuler. %prep -%autosetup -n %{RosPkgName}-%{src_version} +%autosetup -n %{RosPkgName}-%{src_version} -a 1 %build +# Build vendored libiio first (openEuler has no libiio package) +cd libiio-%{libiio_version} +mkdir -p build && cd build +cmake .. \ + -DCMAKE_INSTALL_PREFIX="/usr" \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=lib64 \ + -DBUILD_SHARED_LIBS=ON \ + -DWITH_XML_BACKEND=OFF \ + -DWITH_USB_BACKEND=OFF \ + -DWITH_SERIAL_BACKEND=OFF \ + -DWITH_NETWORK_BACKEND=ON \ + -DWITH_ZSTD=OFF \ + -DWITH_IIOD=OFF \ + -DWITH_UTILS=OFF \ + -DWITH_EXAMPLES=OFF \ + -DWITH_TESTS=OFF \ + -DWITH_MAN=OFF \ + -DLIBIIO_COMPAT=OFF +make %{?_smp_mflags} +_LIBIIO_BUILD_DIR="$PWD" +_LIBIIO_INC_DIR="$(cd ../include/iio && pwd)" +cd ../.. + +# Source ROS environment [ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || true export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} +export LD_LIBRARY_PATH="${_LIBIIO_BUILD_DIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" + +# Build adi-iio against vendored libiio mkdir -p .obj && cd .obj %cmake3 \ -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \ + -DIIO_INCLUDE_DIRS="${_LIBIIO_INC_DIR}" \ + -DIIO_LIBRARIES="${_LIBIIO_BUILD_DIR}/libiio.so" \ -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \ -DSETUPTOOLS_DEB_LAYOUT=OFF \ -DBUILD_TESTING=OFF -DTESTING=OFF -DCMAKE_SUPPRESS_REGENERATION=ON \ @@ -60,15 +94,29 @@ mkdir -p .obj && cd .obj make %{?_smp_mflags} %install +# Install vendored libiio +cd libiio-%{libiio_version}/build +make install DESTDIR=%{buildroot} +cd ../.. + +# Source ROS environment [ -f /opt/ros/%{ros_distro}/setup.sh ] && source /opt/ros/%{ros_distro}/setup.sh || true export PYTHONPATH=/opt/ros/%{ros_distro}/lib/python%{python3_version}/site-packages${PYTHONPATH:+:$PYTHONPATH} export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} + +# Install adi-iio cd .obj make install DESTDIR=%{buildroot} %files +/usr/lib*/libiio.so* +/usr/lib*/pkgconfig/libiio.pc +/usr/include/iio/ /opt/ros/%{ros_distro} %changelog +* Mon Sep 28 2026 ai-importer <ai-importer@openeuler.org> - 1.0.1-2 +- Vendor libiio 1.0.0 (not available on openEuler) +- Remove libiio-dev BuildRequires/Requires, add Provides: libiio/libiio-devel * Mon Sep 28 2026 ai-importer <ai-importer@openeuler.org> - 1.0.1-1 - Initial import (ROS batch) @@ -1 +1,2 @@ 0f7fb6a82cb6281185204bcbaeddee53 adi-iio-1.0.1-3.tar.gz +4991faf8b9da6ce3cb4cfd8eb236b93a libiio-1.0.0.tar.gz |
