-
Notifications
You must be signed in to change notification settings - Fork 769
Improve handling of dependencies #1012
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
base: master
Are you sure you want to change the base?
Conversation
…nan so we can avoid exposing the whole 3rdparty folder on target_include_directories Since this can create some confusion around which headers are actually being included -- the ones from that folder or the ones from conan? Also fixes the include dirs by using ${CMAKE_CURRENT_SOURCE_DIR} instead of "."
For whatever reason including zmq.hpp before zmq_addon.hpp (which does include zmq.hpp internally) breaks builds
thanks, but this completely breaks compilation in ROS, apparently. check CI |
Yes, I've made it a draft to see how it goes with CI. I'll take a look. |
…uild.cmake So it is better to keep this on a single place
…, it just means we're not using ament.
…s needed to opt out of vendored dependencies
Also only look for cppzmq if BTCPP_GROOT_INTERFACE
This header is part of the cppzmq library so it lives on 3rdparty/cppzmq. But for whatever reason there was another version of this header here. Furthermore it was a differnt version of the library.
This target was silently being skiped, not it is explicit
It would be great! But in case you want to use some more maintained and active project for sqlite cpp wrapper, I would say SQLiteCpp. In its README, it pointed a bunch of other SQLite wrappers too, including some that are header-only (if you prefer) |
4e43e36
to
c000115
Compare
c000115
to
083bbf3
Compare
So I was under the impression that Lexy was not supported on conan ATM. Mainly because of https://github.com/conan-io/conan-center-index/blob/master/recipes/behaviortree.cpp/all/conanfile.py#L106 and because I looked for it as |
285c088
to
4232154
Compare
4232154
to
314bdd7
Compare
@facontidavide it looks like using cmake presets on the conan builds opened a can of worms. |
I am going to create a new tagged release, 4.7.3 please refer to that one |
Could you tag after this PR goes in? So we can create a new package in conan with all these packaging changes. |
sorry for pulling the rug under your PR with my changes, but I prefer to remove these dependencies now, before we handle with them in conan https://github.com/BehaviorTree/BehaviorTree.CPP/releases/tag/4.7.3 |
I will look into this. thanks |
This is looking good now! |
Silly question but how do I reproduce the issue you are talking about in CI? I added naively |
Revert these changes and the errors will pop up 314bdd7 They started showing up when I added f88b727 I had to do that because foonathan-lexy errors out if conan is set up to use c++14, and that's what Even with my fixed from above, I see some warnings on the logs. IIRC, when the tests run. They're not errors so CI passes. |
pushed d8c1609 |
On this PR I've reworked how the 3rd party libraries are consumed to improve the conan support.
The rationale is to give the consumer / packager of this library the chance to opt-out of the vendored dependencies and use pre-compiled packages instead.
The changes here are made in such a way that using the vendored version of the libraries is the default, to preserve the current behavior.
Instead of exposing the whole
3rdparty
folder as a include dir, I've added the required CMakeLists files to make each vendored dependency build as a standalone library, which is cleaner and also provides clean bundries between the vendored and non-vendored dependencies.There are some aspects I haven't verified, like the generated cmake config files. I'm not really sure how to test those.
There is also some more cleaning up required around the
ament_build.cmake
andconan_build.cmake
modules, particularly theexport_btcpp_package
macro.