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

Add package for cmake project #16322

Closed
wants to merge 1 commit into from
Closed

Conversation

ruffsl
Copy link

@ruffsl ruffsl commented Jan 11, 2020

This PR simply adds a package.xml used for build tools like catkin or colcon, allowing for the essential build dependencies to be readily identified and when scheduling build order from dependency graphs.

Signed-off-by: ruffsl <roxfoxpox@gmail.com>
Copy link
Member

@alalek alalek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some guide/link how to use that would be extremely useful.

Platform-specific files should be placed under the "platforms" directory: https://github.com/opencv/opencv/tree/master/platforms

  • here is Maven stuff
  • here is JavaScript stuff
  • and this one should go there too (probably with CMakeLists.txt wrapper)


<buildtool_depend>cmake</buildtool_depend>

<build_depend>eigen</build_depend>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this list really complete?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As @mikaelarguedas #16322 (comment) pointed out, we could specify more of the optional dependencies, I just wasn't sure to what extent we'd like to include them explicitly as required, though the one linked seems like a more practical useful build for general users.

@asmorkalov
Copy link
Contributor

@ruffsl friendly reminder

@mikaelarguedas
Copy link

@ruffsl If it's useful, we used the following package.xml files to package opencv in ROS Lunar in the past: https://github.com/ros-gbp/opencv3-release/blob/3ffcbb05e149676d9f92a5d66c3f4b5da42962d7/lunar/package.xml (this was for opencv 3.3.1 at the time)

@ruffsl
Copy link
Author

ruffsl commented Jan 16, 2020

Some guide/link how to use that would be extremely useful.

Sorry, here is some more context as per the motivation and rationale for include a package manifest for summarizing the package depencies, licensing, etc:

Package Manifest Format Three Specification:
https://www.ros.org/reps/rep-0149.html

Platform-specific files should be placed under the "platforms" directory

This package manifest is os or platform agnostic, we use them in ROS for cmake packages built on windows, linux, macos.. and is necessarily located in the same directory as the root CMakeLists.txt for the project. But perhaps we could iterate on alternative idea for its location. Perhaps a fancy cmake file placed in its own platform folder that would point back to root level CMakeLists.txt file.

@alalek
Copy link
Member

alalek commented Jan 21, 2020

I believe, dedicated place/repository for package manager configuration is preferable, than pushing these configurations into upstream reporsitory.

Mixing upstream source code with packaging details of specific package manager doesn't look as a good idea. All package managers and/or their build configurations have own specific stuff.

Refer to multi-platform homebrew, vcpkg, conda package managers or even Linux distros (Ubuntu / Fedora / Arch / etc).


<package format="2">

REP-0149 says about format="3". It is hard to support multiple versions in upstream repository.


/cc @vrabaud as contributor of OpenCV and https://github.com/ros-gbp/opencv3-release repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants