Add option to use third party as external dependencies #792
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Greetings!
After the PR conan-io/conan-center-index#20010, I checked a little bit the current state of BehaviorTree, and there is a window to use external dependencies, instead of those vendorized versions. The only exception is for cppzmq, because it has an internal patch. But why moving to external dependencies, if vendorized is working and keeps versions aligned? Well, people will be able to use newer versions, or even use customized versions, without touching this project.
To summarize this PR:
For now, I only checked it with Conan, but could be agnostic, by adding a
find_package()
in CMakeLists.txt and changing thetarget_link_libraries
, but would requires more changes, harder to review, but could be a next PR.Change the import headers to not use namespace for some dependencies. Well, sounds contradictory, but real thing is, all those projects install their headers in
include
folder directly, no namespace folder, even their tests and examples are using on that way. Here is some information:I tested on my machine™, but as it's irrelevant to the future, I added a new CI job to only
build the project (including unit tests) using only external dependencies. Plus, I updated to use Conan 2.x (Conan 1.x is to be deprecated in the future.)