-
Notifications
You must be signed in to change notification settings - Fork 129
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
ament_vendor: Add AMENT_VENDOR_NEVER_VENDOR #552
base: rolling
Are you sure you want to change the base?
Conversation
Signed-off-by: Silvio Traversaro <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems reasonable to me; I've left a couple of comments.
@cottsay Can you take a look and comment on whether this feature makes sense to you?
Co-authored-by: Chris Lalancette <[email protected]> Signed-off-by: Silvio Traversaro <[email protected]>
I'm 100% behind the idea here. Some thoughts: For better or worse, there are vendor packages which we never allow to be satisfied by system packages, and this change will break builds of those packages. Can we check that I never really liked the name Demo: https://gist.github.com/cottsay/daf9962561ca00c4a78f2bc9b390064b |
Cool idea, I will modify the PR to follow @cottsay (I will be traveling next week, so not sure when I will do it). |
No rush, thanks for considering the changes. I've used this tri-state pattern in other projects before with success, and it seem applicable here. |
When building ros package for a rolling release distribution, if you want a ROS
***_vendor
to use a distro package instead of building its own, typically you want the CMake configuration to fail with a clear message if it is not able to find the package at the required version, not silently start vendoring the package.To do so, I added the CMake option
AMENT_VENDOR_NEVER_VENDOR
that by default isOFF
, and ifON
, raise aFATAL_ERROR
if theSATISFIED
option ofament_vendor
is OFF, effectively ensuring thatament_vendor
never vendors anything. I also added documentation in the macro header of theFORCE_BUILD_VENDOR_PKG
CMake option that was missing.