Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update laser_geometry to C++17. #90

Merged
merged 1 commit into from
Jan 31, 2023
Merged

Conversation

clalancette
Copy link
Contributor

The main reason to do this is so that we can compile laser_geometry with the clang static analyzer. As of clang++-14 (what is in Ubuntu 22.04), the default still seems to be C++14, so we need to specify C++17 so that new things in the rclcpp headers work properly.

Further, due to reasons I don't fully understand, I needed to set CMAKE_CXX_STANDARD_REQUIRED in order for clang to really use that version. So set this as well.

Signed-off-by: Chris Lalancette [email protected]

The main reason to do this is so that we can compile laser_geometry
with the clang static analyzer.  As of clang++-14 (what is in
Ubuntu 22.04), the default still seems to be C++14, so we need
to specify C++17 so that new things in the rclcpp headers work
properly.

Further, due to reasons I don't fully understand, I needed to
set CMAKE_CXX_STANDARD_REQUIRED in order for clang to really use
that version.  So set this as well.

Signed-off-by: Chris Lalancette <[email protected]>
@clalancette
Copy link
Contributor Author

CI for this is in ros2/rmw_dds_common#69 (comment)

@clalancette clalancette merged commit e95ea15 into rolling Jan 31, 2023
@clalancette clalancette deleted the clalancette/update-to-c++17 branch January 31, 2023 19:37
CursedRock17 pushed a commit to CursedRock17/laser_geometry that referenced this pull request Nov 2, 2024
clean up eigen

export eigen as dependency

laser_geometry should export Eigen3 include dirs

fix includes for case and type

Add visibility header modified from rclcpp

Make it compile, remove PointCloud support, and remove boost

- Compiles on Windows with VS2015/VS2017
- Compiles on Mac with clang
- Compiles on Linux with gcc
- Removed PointCloud support as this is deprecated and might not be needed in ROS 2
- Remove boost as per ROS 2 development guidelines

Build statically but position independent code

- This is necessary to link against shared libraries on Linux

Add tests (remove superfluous test cases) and linters

- Code now lints with standard ament linters
- Added test cases for LaserScan to PointCloud2
- Removed tests that were commented out + tests for LaserScan to PointCloud

Uncrustify

Use correct time unit

Fix cpplint

Disable second test for now

Test needs a correct lookupTransform
It would be best to make that call mockable, but that's not possible with tf2::BufferCore

Fix Windows warnings

Remove several test cases

- On not so fast machines, tests run into timeouts due to exponential explosion: test setup makes for about 7000 test cases
- Keep edge cases

Remove angle dependency as no longer necessary

Add Copyright

Fix package.xml

Add TODO for PointCloud 1 support

Build dynamically using visibility control

Make build export symbols

Increase tests timeout (needed for Mac)

Relicense visibility control file to BSD

Already relicensed in URDF repo.

Create LICENSE (ros-perception#33) (ros-perception#34)

fix eigen dependency name (ros-perception#36)

fixup package.xml

changelogs

2.0.0

Use eigen3_cmake_module

Signed-off-by: Shane Loretz <[email protected]>

2.1.0

Signed-off-by: Michael Carroll <[email protected]>

Drop CMake extras redundant with eigen3_cmake_module. (ros-perception#50)

Signed-off-by: Michel Hidalgo <[email protected]>

code style only: wrap after open parenthesis if not in one line (ros-perception#52)

Signed-off-by: Dirk Thomas <[email protected]>

use target_include_directories

Signed-off-by: Karsten Knese <[email protected]>

use ament_export_targets()

Signed-off-by: Dirk Thomas <[email protected]>

Changelog.

Signed-off-by: Chris Lalancette <[email protected]>

2.2.0

increase test timeout

Signed-off-by: Dirk Thomas <[email protected]>

update maintainers

Signed-off-by: Mabel Zhang <[email protected]>

Use rclcpp::Duration::from_seconds (ros-perception#72)

Signed-off-by: Ivan Santiago Paunovic <[email protected]>

Changelog.

Signed-off-by: Chris Lalancette <[email protected]>

2.2.1

Export sensor_msgs, tf2, and rclcpp as dependencies

Signed-off-by: Michel Hidalgo <[email protected]>

changelog

Signed-off-by: Mabel Zhang <[email protected]>

2.2.2

Update python code and tests for ros2 (ros-perception#80)

* Enable projection nose test using ament

* Update python package and tests for ros2

* Remove unneeded python setup file

* Use pytest instead of nose

Nose was outputting xml that xUnit (jenkins plugin) couldn't read.

* Fix pytest warnings

Fix building on running on Windows Debug. (ros-perception#82)

* Fix building on running on Windows Debug.

In particular, we need to set the python executable properly
when running on Windows Debug.  While we are in here, we also
fix up some dependencies in the package.xml and CMakeLists.txt.
We also have to remove WERROR ON, due to some Python
warnings that are outside of our control.  Finally, we heavily
reduce the number of tests being run here so that the tests
complete in a reasonable amount of time, even on (slow) Windows
debug.

Signed-off-by: Chris Lalancette <[email protected]>

2.3.0

Fix Duration casting issue leading to no undistortion

Signed-off-by: Marco Lampacrescia <[email protected]>

Explicit cast to double to prevent loss of precision

Signed-off-by: Marco Lampacrescia <[email protected]>

Install headers to include/${PROJECT_NAME} (ros-perception#86)

Signed-off-by: Shane Loretz <[email protected]>

Changelog.

Signed-off-by: Chris Lalancette <[email protected]>

2.4.0

Mirror rolling to ros2

Update Maintainers (ros-perception#88)

* Add Dharini Dutia to CODEOWNERs file

Signed-off-by: Audrow Nash <[email protected]>

Update laser_geometry to C++17. (ros-perception#90)

The main reason to do this is so that we can compile laser_geometry
with the clang static analyzer.  As of clang++-14 (what is in
Ubuntu 22.04), the default still seems to be C++14, so we need
to specify C++17 so that new things in the rclcpp headers work
properly.

Further, due to reasons I don't fully understand, I needed to
set CMAKE_CXX_STANDARD_REQUIRED in order for clang to really use
that version.  So set this as well.

Signed-off-by: Chris Lalancette <[email protected]>

Changelog.

Signed-off-by: Michael Carroll <[email protected]>

2.5.0

Changelog

Signed-off-by: Chris Lalancette <[email protected]>

2.6.0

Switch to target_link_libraries. (ros-perception#92)

This allows us to hide more of the libraries from downstream
consumers.

While we are in here, do slight cleanups so it is more clear
which libraries are depended on.

Signed-off-by: Chris Lalancette <[email protected]>

Changelog.

Signed-off-by: Chris Lalancette <[email protected]>

2.7.0

Changelog.

Signed-off-by: Marco A. Gutierrez <[email protected]>

2.8.0

Added common linters (ros-perception#96)

Signed-off-by: Alejandro Hernández Cordero <[email protected]>

Changelog.

Signed-off-by: Chris Lalancette <[email protected]>

2.8.1

Stop using python_cmake_module. (ros-perception#93)

* Stop using python_cmake_module.

We really don't need it anymore, and can just use the
builtin find_package(Python3).

* Add in missing ament_cmake_python dependency.

Signed-off-by: Chris Lalancette <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants