diff options
Diffstat (limited to 'elite-robots-msgs.spec')
| -rw-r--r-- | elite-robots-msgs.spec | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/elite-robots-msgs.spec b/elite-robots-msgs.spec new file mode 100644 index 0000000..b7e150a --- /dev/null +++ b/elite-robots-msgs.spec @@ -0,0 +1,79 @@ +# topdir: elite-robots-msgs-1.0.3 (created by --transform) +# subpkg: elite_robots_msgs (ROS2 ament_cmake package within multi-package repo) +%define ros_distro humble +%define RosPkgName elite-robots-msgs + +Name: elite-robots-msgs +Version: 1.0.3 +Release: 1%{?dist} +Summary: Message and service definitions for Elite Robots robot controllers + +License: Apache-2.0 +URL: https://github.com/EliteRobots/Elite_Robots_CS_ROS2_Driver +# Use #/ suffix to force rpm filename; archive contains multi-package repo +Source0: https://github.com/EliteRobots/Elite_Robots_CS_ROS2_Driver/archive/ce37530dd197d1ff4669b193f50803acd9622461.tar.gz#/elite-robots-msgs-1.0.3.tar.gz + +# ROS packages install to /opt/ros — debug/strip not meaningful +%global debug_package %{nil} +# /opt python bytecode compilation writes to standard sitelib — remove brp hook +%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') +# ROS .so under /opt/ros — exclude from autodeps scanning +%global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ +%global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ + +BuildRequires: ros-%{ros_distro}-ament-cmake +BuildRequires: ros-%{ros_distro}-rosidl-default-generators +BuildRequires: ros-%{ros_distro}-geometry-msgs +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: python3-devel + +Requires: ros-%{ros_distro}-rosidl-default-runtime +Requires: ros-%{ros_distro}-ros-workspace +Requires: ros-%{ros_distro}-ament-cmake + +Provides: ros-%{ros_distro}-%{RosPkgName} = %{version}-%{release} + +%description +Message and service definitions for interacting with Elite Robots robot +controllers. This package provides ROS2 interface definitions (.msg and +.srv files) for the Elite Robots CS series driver. + +%prep +%autosetup -n %{name}-%{version} + +%build +# ROS base environment (guard against missing setup.sh in buildroot) +[ -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} + +# Build from the elite_robots_msgs subdirectory (multi-package repo) +cd elite_robots_msgs +mkdir -p .obj && cd .obj +cmake .. \ + -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ + -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ + -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \ + -UINCLUDE_INSTALL_DIR -ULIB_INSTALL_DIR -USYSCONF_INSTALL_DIR \ + -USHARE_INSTALL_PREFIX -ULIB_SUFFIX \ + -DSETUPTOOLS_DEB_LAYOUT=OFF \ + -DBUILD_TESTING=OFF \ + -DCMAKE_BUILD_TYPE=Release +make %{?_smp_mflags} + +%install +# ROS base 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} + +cd elite_robots_msgs/.obj +make install DESTDIR=%{buildroot} + +%files +/opt/ros/%{ros_distro} + +%changelog +* Fri Oct 09 2026 AI Importer <ai@openeuler.org> - 1.0.3-1 +- Initial package for Elite Robots ROS2 message definitions |
