summaryrefslogtreecommitdiff
path: root/agni-tf-tools.spec
blob: 8381b592b68cde4226f541c8db1e9c5913492ebf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
%define ros_distro humble
%define RosPkgName agni-tf-tools

Name:           ros-%{ros_distro}-%{RosPkgName}
Version:        1.0.0
Release:        1%{?dist}
Summary:        GUI and rviz plugin to publish static transforms with Euler angle support
License:        BSD
URL:            https://github.com/ubi-agni/agni_tf_tools
Source0:        agni-tf-tools-1.0.0-1.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}-angles
BuildRequires:  ros-%{ros_distro}-geometry-msgs
BuildRequires:  ros-%{ros_distro}-interactive-markers
BuildRequires:  ros-%{ros_distro}-pluginlib
BuildRequires:  ros-%{ros_distro}-rclcpp
BuildRequires:  ros-%{ros_distro}-rviz-common
BuildRequires:  ros-%{ros_distro}-rviz-default-plugins
BuildRequires:  ros-%{ros_distro}-std-msgs
BuildRequires:  ros-%{ros_distro}-tf2
BuildRequires:  ros-%{ros_distro}-tf2-geometry-msgs
BuildRequires:  ros-%{ros_distro}-tf2-ros
BuildRequires:  ros-%{ros_distro}-visualization-msgs
BuildRequires:  boost-devel
BuildRequires:  eigen3-devel

Requires:       ros-%{ros_distro}-ros-workspace
Requires:       ros-%{ros_distro}-ament-cmake
Requires:       ros-%{ros_distro}-angles
Requires:       ros-%{ros_distro}-geometry-msgs
Requires:       ros-%{ros_distro}-interactive-markers
Requires:       ros-%{ros_distro}-pluginlib
Requires:       ros-%{ros_distro}-rclcpp
Requires:       ros-%{ros_distro}-rviz-common
Requires:       ros-%{ros_distro}-rviz-default-plugins
Requires:       ros-%{ros_distro}-std-msgs
Requires:       ros-%{ros_distro}-tf2
Requires:       ros-%{ros_distro}-tf2-geometry-msgs
Requires:       ros-%{ros_distro}-tf2-ros
Requires:       ros-%{ros_distro}-visualization-msgs
Requires:       boost

Provides:       %{name}-devel = %{version}-%{release}
Provides:       %{name}-doc = %{version}-%{release}
Provides:       %{name}-runtime = %{version}-%{release}

%description
This package provides a GUI program as well as an rviz plugin to publish static
transforms. Both support the transformation between various Euler angle
representations. The rviz plugin also allows configuring the transform with an
interactive marker.

%prep
%setup -q -n agni-tf-tools-1.0.0-1
# rviz_common humble 中 Display::update 签名为 float,源码用 chrono::nanoseconds 需修正
sed -i 's/void update(std::chrono::nanoseconds wall_dt, std::chrono::nanoseconds ros_dt) override;/void update(float wall_dt, float ros_dt) override;/' src/plugin/TransformPublisherDisplay.h
sed -i '/^void TransformPublisherDisplay::update(std::chrono::nanoseconds wall_dt,/{N;s/void TransformPublisherDisplay::update(std::chrono::nanoseconds wall_dt,\n\s*std::chrono::nanoseconds ros_dt)/void TransformPublisherDisplay::update(float wall_dt,\n                                       float ros_dt)/}' src/plugin/TransformPublisherDisplay.cpp

%build
source /opt/ros/%{ros_distro}/setup.sh 2>/dev/null || 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}
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
source /opt/ros/%{ros_distro}/setup.sh 2>/dev/null || 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 .obj
make install DESTDIR=%{buildroot}

%files
/opt/ros/%{ros_distro}

%changelog
* Wed Sep 18 2024 ai-importer <ai-importer@openeuler.org> - 1.0.0-1
- Initial import (ROS batch)