%bcond_without tests %bcond_without weak_deps %global __os_install_post %(echo '%{__os_install_post}' | sed -e 's!/usr/lib[^[:space:]]*/brp-python-bytecompile[[:space:]].*$!!g') %global __provides_exclude_from ^/opt/ros/jazzy/.*$ %global __requires_exclude_from ^/opt/ros/jazzy/.*$ %global debug_package %{nil} Name: ros-jazzy-dynamixel-workbench Version: 2.2.3 Release: 0%{?dist}%{?release_suffix} Summary: ROS dynamixel_workbench package License: Apache 2.0 URL: http://wiki.ros.org/dynamixel_workbench Source0: %{name}-%{version}.tar.gz BuildRequires: ros-jazzy-ament-package Requires: ros-jazzy-dynamixel-workbench-toolbox BuildRequires: ros-jazzy-ament-cmake %description Dynamixel-Workbench is dynamixel solution for ROS. This metapackage allows you to easily change the ID, baudrate and operating mode of the Dynamixel. Furthermore, it supports various controllers based on operating mode and Dynamixel SDK. These controllers are commanded by operators. %prep %autosetup -p1 %build # 修复 PYTHONPATH 环境变量 export PYTHONPATH=/opt/ros/jazzy/lib/python3.11/site-packages:$PYTHONPATH # 修复 CMAKE_PREFIX_PATH 和 PKG_CONFIG_PATH export CMAKE_PREFIX_PATH=/opt/ros/jazzy export PKG_CONFIG_PATH=/opt/ros/jazzy/lib/pkgconfig export rcutils_DIR=/opt/ros/jazzy/opt/ros/jazzy/share/rcutils/cmake # 输出环境变量以验证设置 echo "PYTHONPATH: $PYTHONPATH" echo "CMAKE_PREFIX_PATH: $CMAKE_PREFIX_PATH" echo "PKG_CONFIG_PATH: $PKG_CONFIG_PATH" # 验证 ament_package 是否可用 python3 -c "import ament_package" || { echo "ament_package not found"; exit 1; } # 创建构建目录并进入 mkdir -p .obj-%{_target_platform} && cd .obj-%{_target_platform} %cmake3 \ -UINCLUDE_INSTALL_DIR \ -ULIB_INSTALL_DIR \ -USYSCONF_INSTALL_DIR \ -USHARE_INSTALL_PREFIX \ -ULIB_SUFFIX \ -DCMAKE_INSTALL_PREFIX="/opt/ros/jazzy" \ -DAMENT_PREFIX_PATH="/opt/ros/jazzy" \ -DCMAKE_PREFIX_PATH="/opt/ros/jazzy" \ -DSETUPTOOLS_DEB_LAYOUT=OFF \ %if !0%{?with_tests} -DBUILD_TESTING=OFF \ %endif .. %make_build %install # In case we're installing to a non-standard location, look for a setup.sh # in the install tree and source it. It will set things like # CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH. if [ -f "/opt/ros/jazzy/setup.sh" ]; then . "/opt/ros/jazzy/setup.sh"; fi %make_install -C .obj-%{_target_platform} %if 0%{?with_tests} %check # 检查是否存在测试目录或文件 if [ -d "tests" ] || ls test_*.py *_test.py > /dev/null 2>&1; then %__python3 -m pytest tests || echo "RPM TESTS FAILED" else echo "No tests to run, skipping." fi %endif %files /opt/ros/jazzy/* %changelog * Fri Dec 27 2024 Will Son - 2.2.3-0 - Autogenerated by Bloom