%define ros_distro humble %define RosPkgName etsi-its-rviz-plugins %define src_version 3.5.0 Name: ros-%{ros_distro}-%{RosPkgName} Version: 3.5.0 Release: 1%{?dist} Summary: RViz plugins for etsi_its_messages License: MIT URL: https://github.com/ika-rwth-aachen/etsi_its_messages.git Source0: %{RosPkgName}-%{src_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') %global __provides_exclude_from ^/opt/ros/%{ros_distro}/.*$ %global __requires_exclude_from ^/opt/ros/%{ros_distro}/.*$ BuildRequires: cmake BuildRequires: ros-%{ros_distro}-ament-cmake BuildRequires: ros-%{ros_distro}-pluginlib BuildRequires: ros-%{ros_distro}-rclcpp BuildRequires: ros-%{ros_distro}-ros-environment BuildRequires: ros-%{ros_distro}-rviz-common BuildRequires: ros-%{ros_distro}-rviz-default-plugins BuildRequires: ros-%{ros_distro}-rviz-ogre-vendor BuildRequires: ros-%{ros_distro}-rviz-rendering BuildRequires: ros-%{ros_distro}-rviz-satellite BuildRequires: ros-%{ros_distro}-rviz2 BuildRequires: ros-%{ros_distro}-tf2 BuildRequires: ros-%{ros_distro}-tf2-geometry-msgs BuildRequires: ros-%{ros_distro}-tf2-ros BuildRequires: ros-%{ros_distro}-etsi-its-cam-msgs BuildRequires: ros-%{ros_distro}-etsi-its-cam-ts-msgs BuildRequires: ros-%{ros_distro}-etsi-its-cpm-ts-msgs BuildRequires: ros-%{ros_distro}-etsi-its-denm-msgs BuildRequires: ros-%{ros_distro}-etsi-its-denm-ts-msgs BuildRequires: ros-%{ros_distro}-etsi-its-mapem-ts-msgs BuildRequires: ros-%{ros_distro}-etsi-its-msgs-utils BuildRequires: ros-%{ros_distro}-etsi-its-spatem-ts-msgs BuildRequires: qt5-qtbase BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qtbase-gui BuildRequires: geographiclib-devel BuildRequires: python3-pyproj Requires: ros-%{ros_distro}-ros-workspace Requires: ros-%{ros_distro}-ament-cmake Requires: ros-%{ros_distro}-pluginlib Requires: ros-%{ros_distro}-rclcpp Requires: ros-%{ros_distro}-ros-environment Requires: ros-%{ros_distro}-rviz-common Requires: ros-%{ros_distro}-rviz-default-plugins Requires: ros-%{ros_distro}-rviz-ogre-vendor Requires: ros-%{ros_distro}-rviz-rendering Requires: ros-%{ros_distro}-rviz-satellite Requires: ros-%{ros_distro}-rviz2 Requires: ros-%{ros_distro}-tf2 Requires: ros-%{ros_distro}-tf2-geometry-msgs Requires: ros-%{ros_distro}-tf2-ros Requires: ros-%{ros_distro}-etsi-its-cam-msgs Requires: ros-%{ros_distro}-etsi-its-cam-ts-msgs Requires: ros-%{ros_distro}-etsi-its-cpm-ts-msgs Requires: ros-%{ros_distro}-etsi-its-denm-msgs Requires: ros-%{ros_distro}-etsi-its-denm-ts-msgs Requires: ros-%{ros_distro}-etsi-its-mapem-ts-msgs Requires: ros-%{ros_distro}-etsi-its-msgs-utils Requires: ros-%{ros_distro}-etsi-its-spatem-ts-msgs Requires: qt5-qtbase Requires: qt5-qtbase-gui Requires: geographiclib Requires: python3-pyproj Provides: %{name}-devel = %{version}-%{release} Provides: %{name}-doc = %{version}-%{release} Provides: %{name}-runtime = %{version}-%{release} %description RViz plugins for etsi_its_messages %prep %autosetup -n %{RosPkgName}-%{src_version} # etsi_its_msgs_utils 是 INTERFACE 库,其 CMake 导出目标 link interface 含 # GeographicLib::GeographicLib_SHARED;但 etsi_its_rviz_plugins 的 CMakeLists.txt # 未调用 find_package(GeographicLib),CMake 配置阶段无法解析该 IMPORTED 目标。 # 在 find_package(etsi_its_msgs_utils) 之前插入 find_package(GeographicLib REQUIRED)。 sed -i 's|^find_package(etsi_its_msgs_utils REQUIRED)|list(APPEND CMAKE_MODULE_PATH "/usr/share/cmake/geographiclib")\nfind_package(GeographicLib REQUIRED)\nfind_package(etsi_its_msgs_utils REQUIRED)|' etsi_its_rviz_plugins/CMakeLists.txt %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} export PKG_CONFIG_PATH=/opt/ros/%{ros_distro}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} cd etsi_its_rviz_plugins 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}" \ -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 \ .. make %{?_smp_mflags} %install [ -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 etsi_its_rviz_plugins cd .obj make install DESTDIR=%{buildroot} %files /opt/ros/%{ros_distro} %changelog * Thu Oct 08 2026 ai-importer - 3.5.0-1 - Patch CMakeLists.txt: insert find_package(GeographicLib) before find_package(etsi_its_msgs_utils) to resolve GeographicLib::GeographicLib_SHARED IMPORTED target - Fix GeographicLib::GeographicLib_SHARED CMake target not found: add geographiclib-devel to BuildRequires - Initial import (ROS batch)