Skip to content
This repository was archived by the owner on Aug 7, 2025. It is now read-only.

Commit 438ac2b

Browse files
author
berndgassmann
authored
Fix python binding build and remove Ubuntu 16.04 support (#115)
Fixed ad_rss_map_integration python binding build failed in CARLA environment because of not existing folder being referenced Remove Ubuntu 16.04 support and use Ubuntu's libproj version
1 parent 2ce3bc8 commit 438ac2b

File tree

10 files changed

+45
-94
lines changed

10 files changed

+45
-94
lines changed

.github/workflows/build_test.yml

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -11,53 +11,6 @@ env:
1111
BUILDCMD: "colcon build --event-handlers console_direct+ --executor sequential --packages-up-to ad_rss ad_rss_map_integration --cmake-args -DBUILD_HARDENING=ON -DBUILD_TESTING=ON -DBUILD_PYTHON_BINDING=ON -DPYTHON_BINDING_VERSION=${PYTHON_BINDING_VERSION} && colcon test --event-handlers console_direct+ --packages-select ad_rss ad_rss_map_integration && colcon test-result"
1212

1313
jobs:
14-
ubuntu16job:
15-
name: Ubuntu 16.04
16-
runs-on: ubuntu-16.04
17-
18-
strategy:
19-
matrix:
20-
include:
21-
- compiler: gcc5
22-
EXTRA_PACKAGES: ""
23-
CC: ""
24-
CXX: ""
25-
PYTHON_BINDING_VERSION: "2.7"
26-
- compiler: gcc6
27-
EXTRA_PACKAGES: g++-6
28-
CC: /usr/bin/gcc-6
29-
CXX: /usr/bin/g++-6
30-
PYTHON_BINDING_VERSION: "2.7"
31-
- compiler: clang5
32-
EXTRA_PACKAGES: clang-5.0
33-
CC: /usr/bin/clang-5.0
34-
CXX: /usr/bin/clang++-5.0
35-
PYTHON_BINDING_VERSION: "2.7"
36-
- compiler: clang6
37-
EXTRA_PACKAGES: clang-6.0
38-
CC: /usr/bin/clang-6.0
39-
CXX: /usr/bin/clang++-6.0
40-
PYTHON_BINDING_VERSION: "2.7"
41-
42-
steps:
43-
- uses: actions/checkout@v2
44-
with:
45-
submodules: true
46-
47-
- name: Install Dependencies
48-
run: bash .github/workflows/install_dependencies.sh
49-
50-
- name: Build and Test
51-
env:
52-
CC: ${{ matrix.CC }}
53-
CXX: ${{ matrix.CXX }}
54-
EXTRA_PACKAGES: ${{ matrix.EXTRA_PACKAGES }}
55-
PYTHON_BINDING_VERSION: ${{ matrix.PYTHON_BINDING_VERSION }}
56-
run: |
57-
sudo apt-get install ${EXTRA_PACKAGES}
58-
rm -rf log build install
59-
eval CC=${CC} CXX=${CXX} ${BUILDCMD}
60-
6114
ubuntu18job:
6215
name: Ubuntu 18.04
6316
runs-on: ubuntu-18.04

.github/workflows/wheels.yml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,14 @@ jobs:
2525
with:
2626
fetch-depth: 1
2727
submodules: true
28+
- name: Prepare PROJ
29+
run: |
30+
git clone --depth=1 -b 4.9.3 https://github.com/OSGeo/PROJ.git dependencies/PROJ
2831
- name: Build wheels
32+
shell: bash
2933
run: |
34+
colcon build --packages-select PROJ4 --event-handlers console_direct+ --cmake-args -DCMAKE_POSITION_INDEPENDENT_CODE=ON
35+
source install/setup.bash
3036
colcon build --packages-up-to ad_rss_map_integration --meta colcon_python.meta --event-handlers console_direct+ --cmake-args -DPYTHON_BINDING_VERSION=${PYTHON_BINDING_VERSION}
3137
- name: Repair wheels
3238
shell: bash
@@ -38,10 +44,10 @@ jobs:
3844
for whl in install/ad_rss_map_integration/dist/*.whl; do
3945
auditwheel repair $whl --plat ${WHEEL_PLATFORM} --wheel-dir wheelhouse
4046
done
41-
- name: Publish wheels to PyPI
42-
uses: pypa/gh-action-pypi-publish@release/v1
43-
if: ${{ github.event_name == 'release'}}
44-
with:
45-
user: __token__
46-
password: ${{ secrets.PYPI_API_TOKEN }}
47-
packages_dir: wheelhouse/
47+
# - name: Publish wheels to PyPI
48+
# uses: pypa/gh-action-pypi-publish@release/v1
49+
# if: ${{ github.event_name == 'release'}}
50+
# with:
51+
# user: __token__
52+
# password: ${{ secrets.PYPI_API_TOKEN }}
53+
# packages_dir: wheelhouse/

README.md

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@ Note: The RSS module in this library does not initiate evasive manuevers. At the
116116
## Getting started <a name="started"></a>
117117

118118
#### Installation of dependencies
119-
Currently, the focused operating systems are Ubuntu 16.04 and Ubuntu 18.04. Nevertheless, the library should work in a similar way for any other Linux OS.
120-
To install the basic dependencies for Ubuntu 16.04/18.04 execute the following command:
119+
Currently, the focused operating systems are Ubuntu 18.04 and Ubuntu 20.04. Nevertheless, the library should work in a similar way for any other Linux OS.
120+
To install the basic dependencies for Ubuntu 18.04/20.04 execute the following command:
121121
```bash
122-
user$> sudo apt-get install git build-essential cmake libboost-dev
122+
user$> sudo apt-get install git build-essential cmake libboost-dev libpugixml-dev libgtest-dev libpython-dev libproj-dev
123123
```
124124

125125
If you want to use doxygen for API documentation, please also install:
@@ -135,20 +135,16 @@ To download the library, you may run:
135135
```
136136

137137
#### Supported systems <a name="systems"></a>
138-
Development systems are Ubuntu 16.04 and Ubuntu 18.04.
138+
Development systems are Ubuntu 18.04 and Ubuntu 20.04.
139139
Following compiler combinations are [tested continously](https://github.com/intel/ad-rss-lib/blob/master/.travis.yml):
140140

141-
| | Ubuntu 16.04 | Ubuntu 18.04 | Ubuntu 20.04 |
142-
|:---------------:|:------------:|:------------:|:------------:|
143-
| Clang 5.0 | x | | |
144-
| Clang 6.0 | x | | |
145-
| Clang 7 | | x | |
146-
| Clang 8 | | x | |
147-
| GCC 5 | x | | |
148-
| GCC 6 | x | | |
149-
| GCC 7 | | x | |
150-
| GCC 8 | | x | |
151-
| GCC 9 | | x | x |
141+
| | Ubuntu 18.04 | Ubuntu 20.04 |
142+
|:---------------:|:------------:|:------------:|
143+
| Clang 7 | x | |
144+
| Clang 8 | x | |
145+
| GCC 7 | x | |
146+
| GCC 8 | x | |
147+
| GCC 9 | x | x |
152148

153149
Important: cmake is required to be at least version 3.5!
154150

@@ -161,15 +157,15 @@ Contibutions are very welcome!
161157
Before submitting a pull request, please ensure that your code compiles successfully and that the tests run successfully.
162158
Please also check that your code formatting complies to the provided clang style. To do so, you can run:
163159
```bash
164-
ad_rss$> sudo apt-get install clang-format-3.9
165-
ad_rss$> find -iname *.cpp -o -iname *.hpp | xargs clang-format-3.9 -style=file -i
160+
ad-rss-lib$> sudo apt-get install clang-format-10
161+
ad-rss-lib$> find -iname *.cpp -o -iname *.hpp | xargs clang-format-10 -style=file -i
166162
```
167163
This command will automatically update the code formatting to be compliant with our style.
168164

169165
In addition, please perform a static code analysis, if possible.
170166
```bash
171-
ad_rss$> sudo apt-get install clang-tidy
172-
ad_rss$> cmake -DBUILD_STATIC_ANALYSIS=ON
173-
ad_rss$> make clang-tidy
167+
ad-rss-lib$> sudo apt-get install clang-tidy
168+
ad-rss-lib$> cmake -DBUILD_STATIC_ANALYSIS=ON
169+
ad-rss-lib$> make clang-tidy
174170
```
175171
This may provide a list of possible improvements that you would like to consider in your pull request.

ad_rss_map_integration/python/generate_python_lib.py.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def main():
2525
"""
2626
include_dirs = {
2727
"@GENPY_INCLUDE_DIRS@",
28-
"@CMAKE_CURRENT_LIST_DIR@/../generated/include/",
28+
#"@CMAKE_CURRENT_LIST_DIR@/../generated/include/",
2929
"@CMAKE_CURRENT_LIST_DIR@/../include/"
3030
}
3131

colcon.meta

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
{
22
"names": {
3-
"PROJ4": {
4-
"cmake-args": ["-DCMAKE_POSITION_INDEPENDENT_CODE=ON"]
5-
},
63
"spdlog": {
74
"cmake-args": ["-DCMAKE_POSITION_INDEPENDENT_CODE=ON", "-DSPDLOG_BUILD_TESTS=OFF", "-DSPDLOG_BUILD_EXAMPLE=Off"]
8-
},
9-
"ad_map_opendrive_reader": {
10-
"dependencies": ["PROJ4"]
115
}
126
}
137
}

colcon_python.meta

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
11
{
22
"names": {
3-
"PROJ4": {
4-
"cmake-args": ["-DBUILD_SHARED_LIBS=OFF", "-DCMAKE_POSITION_INDEPENDENT_CODE=ON"]
5-
},
63
"spdlog": {
74
"cmake-args": ["-DCMAKE_POSITION_INDEPENDENT_CODE=ON", "-DSPDLOG_BUILD_TESTS=OFF", "-DSPDLOG_BUILD_EXAMPLE=Off"]
85
},
96
"ad_physics": {
107
"cmake-args": ["-DBUILD_PYTHON_BINDING=ON"]
118
},
12-
"ad_map_opendrive_reader": {
13-
"dependencies": ["PROJ4"]
14-
},
159
"ad_map_access": {
1610
"cmake-args": ["-DBUILD_PYTHON_BINDING=ON"]
1711
},

dependencies/PROJ

Submodule PROJ deleted from da2d678

doc/BUILDING.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@ The components within this repository have some dependencies:
1313
- **ad_rss_map_integration**:
1414
- *ad_rss*
1515
- ad_map_access: <https://github.com/carla-simulator/map.git>
16-
- proj: <https://www.osgeo.org/projects/proj/>
16+
- Boost (including components filesystem and program_options)
17+
- ad_map_opendrive_reader: <https://github.com/carla-simulator/map.git>
18+
- pugixml
19+
- proj: <https://www.osgeo.org/projects/proj/>
1720
- spdlog: <https://github.com/gabime/spdlog.git>
1821
- **ad_rss_map_integration_python** (if Python binding build enabled):
1922
- ad_map_access_python: <https://github.com/carla-simulator/map.git>
@@ -25,16 +28,17 @@ The components within this repository have some dependencies:
2528
- gtest aka. googletests < 1.10 : <https://github.com/google/googletest>
2629
- xmlrunner
2730

28-
Dependencies provided by Ubunutu (>= 16.04):
31+
Dependencies provided by Ubunutu (>= 18.04):
2932

3033
- Boost
3134
- pugixml
35+
- libproj-dev
3236
- gtest
3337
- libpython-dev
3438

3539
Those can be installed by calling:
3640
```bash
37-
$> sudo apt-get install libboost-all-dev libpugixml-dev libgtest-dev libpython-dev
41+
$> sudo apt-get install libboost-all-dev libpugixml-dev libgtest-dev libpython-dev libproj-dev
3842
```
3943

4044
Additional dependencies for the python bindings:
@@ -49,7 +53,6 @@ Remaining dependencies are present as GIT submodules; also to fix the version of
4953
- ad_map_opendrive_reader
5054
- ad_physics
5155
- spdlog
52-
- proj
5356

5457
## Building
5558
For compiling all libraries and the dependencies, colcon is used [colcon](https://colcon.readthedocs.io/).

doc/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,15 @@
33
## Release 4.5.0
44

55
#### :rocket: New Features
6+
* Remove Ubuntu 16.04 support
67
* Add creation of python wheels
78
* Update map to v2.5.0
89

10+
## Release 4.4.3
11+
12+
#### :ghost: Maintenance
13+
* Fix: ad_rss_map_integration python binding build
14+
915
## Release 4.4.2
1016

1117
#### :ghost: Maintenance

doc/ad_rss/HLD-Security.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,12 @@ Unit testing achieved code coverage can be retrieved via [github deployment](htt
172172

173173
#### Compiler and compiler security flags
174174

175-
The development platforms are Ubuntu Linux 16.04 Xenial and Ubuntu Linux 18.04 Bionic.
175+
The development platforms are Ubuntu Linux 18.04 Bionic and 20.04 Focal Fossa.
176176

177177
A standard cmake toolchain has been used to compile the library. Other supported compilers are listed at the [main page](../../#systems)
178178

179179
The following, strict, [compilation flags](https://github.com/intel/ad-rss-lib/blob/master/cmake/warnings.cmake) are used:
180-
C++11, -Werror, -Wall, -Wextra, -pedantic, -Wconversion, -Wsign-conversion, -Wfloat-equal -Wshadow -Wswitch-default -Wenum-compare -Wformat -Wformat-security.
180+
C++14, -Werror, -Wall, -Wextra, -pedantic, -Wconversion, -Wsign-conversion, -Wfloat-equal -Wshadow -Wswitch-default -Wenum-compare -Wformat -Wformat-security.
181181

182182
* -Werror turns all warnings into errors
183183
* -Wall enables many warnings about code constructs that are questionable

0 commit comments

Comments
 (0)