diff options
| author | CoprDistGit <infra@openeuler.org> | 2026-09-22 11:20:41 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2026-09-22 11:20:41 +0000 |
| commit | 31bbae17b48478b5e48d76faa5ec87edbfa7175a (patch) | |
| tree | c38d505f053317f2c2301aecf34fa3c382d812c7 | |
| parent | 2c79341ab01efc74b8e2904b1db270d3e8e7d2a0 (diff) | |
automatic import of ros-humble-vrpn-mocapopeneuler24.03_LTS_SP3
| -rw-r--r-- | vrpn-mocap.spec | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/vrpn-mocap.spec b/vrpn-mocap.spec index 4918664..858f371 100644 --- a/vrpn-mocap.spec +++ b/vrpn-mocap.spec @@ -43,6 +43,42 @@ ROS2 %prep %autosetup -n %{RosPkgName}-%{src_version} +# 适配 openEuler/eulermaker 的 ros-humble-vrpn: +# 该包只提供 libvrpn.so 与 /opt/ros/%{ros_distro}/include 下的头文件, +# 没有安装 VRPNConfig.cmake / vrpn-config.cmake,导致上游 CMakeLists.txt +# 第 20 行的 find_package(VRPN REQUIRED) 配置期直接失败。 +# 这里补一个 FindVRPN.cmake 模块,经 CMAKE_MODULE_PATH 注入, +# 导出 ament_target_dependencies 需要的 VRPN::VRPN imported target +# 以及 VRPN_INCLUDE_DIRS / VRPN_LIBRARIES 变量。 +mkdir -p %{_builddir}/%{RosPkgName}-%{src_version}/cmake-modules +cat > %{_builddir}/%{RosPkgName}-%{src_version}/cmake-modules/FindVRPN.cmake << 'VRPNEOF' +# 由 ros-humble-vrpn-mocap 打包流程注入:桥接未导出 CMake 配置的 vrpn 安装。 +find_path(VRPN_INCLUDE_DIR + NAMES vrpn_Connection.h + PATHS /opt/ros/%{ros_distro}/include + NO_DEFAULT_PATH) +find_library(VRPN_LIBRARY + NAMES vrpn + PATHS /opt/ros/%{ros_distro}/lib + NO_DEFAULT_PATH) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(VRPN + REQUIRED_VARS VRPN_INCLUDE_DIR VRPN_LIBRARY) + +if(VRPN_FOUND) + set(VRPN_INCLUDE_DIRS "${VRPN_INCLUDE_DIR}") + set(VRPN_LIBRARIES "${VRPN_LIBRARY}") + if(NOT TARGET VRPN::VRPN) + add_library(VRPN::VRPN UNKNOWN IMPORTED) + set_target_properties(VRPN::VRPN PROPERTIES + IMPORTED_LOCATION "${VRPN_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${VRPN_INCLUDE_DIR}") + endif() + set(VRPN_TARGETS VRPN::VRPN) +endif() +VRPNEOF + %build [ -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} @@ -52,6 +88,7 @@ mkdir -p .obj && cd .obj -DCMAKE_INSTALL_PREFIX="/opt/ros/%{ros_distro}" \ -DAMENT_PREFIX_PATH="/opt/ros/%{ros_distro}" \ -DCMAKE_PREFIX_PATH="/opt/ros/%{ros_distro}" \ + -DCMAKE_MODULE_PATH="%{_builddir}/%{RosPkgName}-%{src_version}/cmake-modules" \ -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 \ |
