summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vrpn-mocap.spec37
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 \