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

Initial eigen3_cmake_module package #1

Merged
merged 8 commits into from
Aug 6, 2019
Merged

Initial eigen3_cmake_module package #1

merged 8 commits into from
Aug 6, 2019

Conversation

sloretz
Copy link
Contributor

@sloretz sloretz commented Jul 25, 2019

This adds a package that provides a find module for Eigen3 that sets standard cmake variables.

Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
@sloretz sloretz self-assigned this Jul 25, 2019
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
Copy link

@IanTheEngineer IanTheEngineer left a comment

Choose a reason for hiding this comment

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

Looks great! Thanks for making this available for the community

LICENSE Show resolved Hide resolved
@IanTheEngineer
Copy link

@sloretz who should we ping to review this for merge & buildfarm release?

Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
package.xml Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
Signed-off-by: Shane Loretz <sloretz@osrfoundation.org>
Copy link
Member

@dirk-thomas dirk-thomas left a comment

Choose a reason for hiding this comment

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

lgtm

@sloretz sloretz merged commit 77cf1c6 into master Aug 6, 2019
@delete-merged-branch delete-merged-branch bot deleted the initial_package branch August 6, 2019 22:12
Adds a custom find module for Eigen3

This package adds a [CMake find module](https://cmake.org/cmake/help/v3.14/manual/cmake-developer.7.html#find-modulesjj) for [Eigen3](https://eigen.tuxfamily.org/dox/) that sets [standard CMake variables](https://cmake.org/cmake/help/v3.5/manual/cmake-developer.7.html#standard-variable-names).
This enables `ament_export_dependencies(Eigen3)` and `ament_target_dependencies(my_target Eigen3)`.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is it possible to give a little more context here on this issue? In your explanation you mentioned the reasoning behind this package is that ament process for adding eigen3 as a dependency may not work in Ubuntu bionic. Would the user be able to recognize that that's the problem when their "library or executable using Eigen3" failed to compile? Would someone searching for a fix be able to recognize that this is for that exact issue?

For your audience to be convinced that this is the solution to their problem, I just want to make sure that the "solution" mentioned here is enough to do so.

Maybe "This enables ... in the event that ... (it fails because x)"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I added more context about the problem in e78118d in #2


## Using this package

This section assumes you're using [ament_cmake](https://github.com/ament/ament_cmake).
Copy link
Contributor

Choose a reason for hiding this comment

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

From what I can gather, it seems like the whole purpose behind this package and the problem/solution here is 100% due to/reliant on ament. Would someone who wasn't using ament come across this problem? If yes, is there any other way to solve the problem without using ament?

"... assumes you're using.." makes it sound like there are other options, which might be misleading or confusing (or correct if my understanding of the situation is wrong!) Hinting at other options but not elaborating on them might be confusing. If there are other ways you might want to say something like:

"You can follow the ament syntax below to accomplish the same thing using < another build tool of choice >"

Otherwise I would either remove the statement or change it to convey "This section requires ament"

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Someone not using ament_cmake would also notice that Eigen3 uses non-standard variable names. It's less of a problem for them since they have to do everything manually already. ament_cmake packages have an issue because they use convenience functions (ament_target_dependencies(), ament_export_dependencies()) that make assumptions about the variable names.

I added instructions for non-ament_cmake users in
3c1f634 in #2

@sloretz sloretz moved this from Proposed to In progress in Dashing Patch Release 3 Aug 8, 2019
@sloretz sloretz moved this from In progress to Released in Dashing Patch Release 3 Aug 8, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

4 participants