summaryrefslogtreecommitdiff
path: root/autoware-lanelet2-extension.spec
blob: efd9ef328c14ffb171e52efc67caf7a505f0db4d (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# topdir(in archive): autoware-lanelet2-extension-1.2.0  (repo root; the ROS
# package source lives in the autoware_lanelet2_extension/ sub-directory)
%define ros_distro humble
%define RosPkgName autoware-lanelet2-extension

Name:           ros-%{ros_distro}-%{RosPkgName}
Version:        1.2.0
Release:        1%{?dist}
Summary:        Libraries to handle Lanelet2 format data (Autoware extension)
License:        Apache License 2.0
URL:            https://github.com/autowarefoundation/autoware_lanelet2_extension.git
Source0:        %{RosPkgName}-%{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}/.*$

# package.xml <depend>: geometry_msgs / lanelet2_core / lanelet2_io /
# lanelet2_maps / lanelet2_projection / lanelet2_routing / lanelet2_traffic_rules
# / lanelet2_validation / rclcpp / tf2 / tf2_geometry_msgs / visualization_msgs,
# plus the upstream-only autoware_msgs interfaces (autoware_map_msgs,
# autoware_planning_msgs) and autoware_cmake. <buildtool_depend> is
# ament_cmake_auto + autoware_cmake -> autoware_package()/autoware_auto_*
# scaffolding (ament_cmake / ament-cmake-auto below).
# System deps from the rosdep keys pugixml-dev / range-v3 -> the openEuler
# -devel package names produced by the pre-check analysis.
# geographiclib-devel: not a direct package.xml <depend>, but autoware_cmake's
# AutoDeps walks the exported package configs transitively
# (lanelet2_io -> lanelet2_projectionConfig.cmake ->
# lanelet2_projectionAutoDepsConfig.cmake -> find_package(GeographicLib)) and
# fails with "Could NOT find GeographicLib" unless the headers/libraries are in
# the build root; same BuildRequires as the sibling
# ros-humble-lanelet2-projection / ros-humble-lanelet2-validation specs.
# mrt-cmake-modules: also not a direct package.xml <depend> of this package, but
# the lanelet2 stack declares it as <buildtool_export_depend>, so the installed
# lanelet2_coreConfig.cmake runs find_package(mrt_cmake_modules REQUIRED) from
# its _init_package_dependencies() macro (template
# mrt_cmake_modules/cmake/Templates/packageConfig.cmake.in:35) whenever a
# consumer configures against lanelet2_core -> CMake error "Could not find a
# package configuration file provided by mrt_cmake_modules". Same BuildRequires
# as the sibling ros-humble-lanelet2-io / -projection / -validation specs.
# <test_depend> ament_cmake_ros is intentionally not listed (tests are gated off
# in %build via -DBUILD_TESTING=OFF).
BuildRequires:  cmake
BuildRequires:  ros-%{ros_distro}-ament-cmake
BuildRequires:  ros-%{ros_distro}-ament-cmake-auto
BuildRequires:  ros-%{ros_distro}-autoware-cmake
BuildRequires:  ros-%{ros_distro}-autoware-map-msgs
BuildRequires:  ros-%{ros_distro}-autoware-planning-msgs
BuildRequires:  ros-%{ros_distro}-geometry-msgs
BuildRequires:  ros-%{ros_distro}-lanelet2-core
BuildRequires:  ros-%{ros_distro}-lanelet2-io
BuildRequires:  ros-%{ros_distro}-lanelet2-maps
BuildRequires:  ros-%{ros_distro}-lanelet2-projection
BuildRequires:  ros-%{ros_distro}-lanelet2-routing
BuildRequires:  ros-%{ros_distro}-lanelet2-traffic-rules
BuildRequires:  ros-%{ros_distro}-lanelet2-validation
BuildRequires:  ros-%{ros_distro}-mrt-cmake-modules
BuildRequires:  ros-%{ros_distro}-rclcpp
BuildRequires:  ros-%{ros_distro}-tf2
BuildRequires:  ros-%{ros_distro}-tf2-geometry-msgs
BuildRequires:  ros-%{ros_distro}-visualization-msgs
BuildRequires:  pugixml-devel
BuildRequires:  range-v3-devel
BuildRequires:  geographiclib-devel

Requires:       ros-%{ros_distro}-ros-workspace
Requires:       ros-%{ros_distro}-ament-cmake
Requires:       ros-%{ros_distro}-ament-cmake-auto
Requires:       ros-%{ros_distro}-autoware-cmake
Requires:       ros-%{ros_distro}-autoware-map-msgs
Requires:       ros-%{ros_distro}-autoware-planning-msgs
Requires:       ros-%{ros_distro}-geometry-msgs
Requires:       ros-%{ros_distro}-lanelet2-core
Requires:       ros-%{ros_distro}-lanelet2-io
Requires:       ros-%{ros_distro}-lanelet2-maps
Requires:       ros-%{ros_distro}-lanelet2-projection
Requires:       ros-%{ros_distro}-lanelet2-routing
Requires:       ros-%{ros_distro}-lanelet2-traffic-rules
Requires:       ros-%{ros_distro}-lanelet2-validation
Requires:       ros-%{ros_distro}-rclcpp
Requires:       ros-%{ros_distro}-tf2
Requires:       ros-%{ros_distro}-tf2-geometry-msgs
Requires:       ros-%{ros_distro}-visualization-msgs
Requires:       pugixml-devel
Requires:       range-v3-devel
Requires:       geographiclib-devel
Requires:       geographiclib

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

%description
The autoware_lanelet2_extension package contains libraries to handle Lanelet2
format data (Autoware-specific lanelet2 extensions: regulatory elements,
projectors, query utilities and message conversion helpers).

%prep
%autosetup -n %{RosPkgName}-%{version}

%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 autoware_lanelet2_extension
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 autoware_lanelet2_extension
cd .obj
make install DESTDIR=%{buildroot}

%files
/opt/ros/%{ros_distro}

%changelog
* Mon Sep 21 2026 ai-importer <ai-importer@openeuler.org> - 1.2.0-1
- Initial import (ROS)