Support Modern CMake practices
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- cmake, cpp
- Domain
- build-system
Research direction
The issue names no specific files or tests; begin by locating the image_common package CMake configuration and reviewing the current include, dependency, installation, and export calls. Compare the package's targets with the modern CMake and ament_cmake references, then verify that the listed targets can be consumed through the proposed CONFIG-mode names by gscam2.
Written by the indexing model from the issue text.
Description
As a user of this library in gscam2, I'd like to consume the libraries in image_common with a modern cmake interface, but it's not supplied here.
Here's my proposal:
- Replace calls to
include_directorieswithtarget_include_directories - - Add ALIAS libraries for better determinism
- - Replace calls to
ament_target_dependencieswithtarget_link_libraries - - Specify linkage type as PUBLIC, PRIVATE or INTERFACE when calling target_link_libraries
- - Bump Minimum cmake for galactic to 3.12.2 and use some of the new features in it for installation
- - Add an EXPORT set to the install commands
- - Support a CONFIG mode export to support find_package allowing consumers to link to targets like
camera_calibration_parsers::camera_calibration_parsers - - Remove
ament_export_include_directoriesandament_export_librariescalls as they are superfluous - - Could use ament_auto_package to handle the install of the targets
References:
- Professional CMake by Craig Scott, 12th Ed
- ament_cmake
- Modern CMake
- Dominant language
- C++
- Stars
- 153
- Forks
- 253
- Avg merge
- 5m
- Merged PRs (30d)
- 1
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ros-perception/image_common
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
ros-perception/image_common#346 · 1 reaction ·
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
ros-perception/image_common#286 · 1 comment ·
-
[ROS2] CameraInfoManager set_camera_info service callback returns without updating saved cal data Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ros-perception/image_common#131 ·
-
Difficulty 4/5 3-5 days Newbie friendliness 45/100
ros-perception/image_common#423 · 2 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 52/100
ros-perception/image_common#414 ·
All issues in ros-perception/image_common
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gazebosim/gz-sensors#662 · 1 comment ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
comp-datalake
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ClickHouse/ClickHouse#121222 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
LadybirdBrowser/ladybird#12123 ·