-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
behaviortree.cpp: add versions 3.8.3,4.0.2,4.1.1 #16731
Conversation
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
"with_groot_interface": False, | ||
"with_sqlite_logging": False, |
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.
These two should be True by default. also, these options make sense only in version 4.1.1 or older.
Additionally with_coroutines should be removed in version 4.1.1 and newer
if Version(self.version) < "4.1.0": | ||
self.cpp_info.components[libname].requires.extend(["ncurses::ncurses"]) | ||
if self.options.with_coroutines: | ||
self.cpp_info.components[libname].requires.append("boost::coroutine") | ||
|
||
if Version(self.version) > "4.1.0" and self.options.with_sqlite_logging: |
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.
change to 4.1.1 ?
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.
I think SQLite is needed for 4.1.1 and more, right? (so > 4.1.0)
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.
right
+find_package(lexy REQUIRED CONFIG) | ||
+find_package(minitrace REQUIRED CONFIG) | ||
+find_package(tinyxml2 REQUIRED CONFIG) |
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.
These should be removed alson in 4.0.2 and 4.0.1:
- cppzmq
- lexy
- minitrace
- tinyxml2
It was never intended to use conan for these specific dependencies, only sqlite and ZeroMQ
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.
The problem is that if the behaviortree library uses these dependencies internally, vendored, or something like that (it seems so https://github.com/BehaviorTree/BehaviorTree.CPP/tree/master/3rdparty), and the behaviortree library is used together with these vendored libraries, there could easily be linking errors, right? In principle, vendored libraries are not allowed in ConanCenter.
I'd like to understand a bit better about this.
-add_subdirectory(3rdparty/lexy) | ||
+find_package(cppzmq REQUIRED CONFIG) | ||
+find_package(lexy REQUIRED CONFIG) | ||
+find_package(tinyxml2 REQUIRED CONFIG) |
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.
see comment below about dependencies
This comment has been minimized.
This comment has been minimized.
@@ -58,38 +67,49 @@ def config_options(self): | |||
del self.options.fPIC | |||
|
|||
def configure(self): | |||
if conan_version >= Version("2.0.0") and Version(self.version) < "4.0.1": | |||
raise Exception("Conan >=v2.0.0 is not compatible with behaviortree.cpp < 4.0.1") |
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.
What is the reason for this error? We have not made 2.0 required so it seems odd to have this in 🤔
The Conan client also prints a message so it should not be require in each recipe
-find_package(ZMQ) | ||
+find_package(ZeroMQ) |
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 can be changed in a recipe with CMakeDeps using the set_property
in the generate method
"with_groot_interface": [True, False], | ||
"with_sqlite_logging": [True, False], |
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.
If these are specific to a version, they should be removed from config_options or package ID
|
||
if Version(self.version) == "4.0.1" or Version(self.version) == "4.0.2": | ||
tc.variables["BTCPP_MANUAL_SELECTOR"] = False | ||
|
||
tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW" |
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 can be dropped if the conan required version is bump to 1.54.0 :)
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.
You're right
replace_in_file(self, | ||
path_bt_factory, | ||
"#define BT_FACTORY_H", | ||
"#define BT_FACTORY_H\n#define BEHAVIORTREE_VERSION 0x%02d%02d%03d" % (int(str(ver.major)), int(str(ver.minor)), int(str(ver.patch)))) |
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.
Why is this required?
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.
The library doesn't include any version information anywhere. I wanted to provide a version to the developer. Because there are some deps which can't be used at compilation time without version info.
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.
Did a quick pass, few questions to understand what you are doing + some suggestions to help clean up the recipe more
Thansk for taking the time to work on this ❤️
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
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.
Sorry this was not followed up, the activity and backlog in ConanCenter is huge, 5k PR per year, and it is challenging to manage everything. I am assigning it to myself to try to help to get it to the finish line.
@bariscelik, the CLA needs to be signed again, it was reset and it needs to be signed again, sorry for the inconvenience
"4.0.1": | ||
- patch_file: "patches/4.0.1-0001-remove-fpic.patch" | ||
- patch_file: "patches/4.0.1-0002-find-zmq.patch" |
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.
I am a bit confused about this change, how it is possible to remove patches that were there in the past for an already packaged version?
+find_package(lexy REQUIRED CONFIG) | ||
+find_package(minitrace REQUIRED CONFIG) | ||
+find_package(tinyxml2 REQUIRED CONFIG) |
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.
The problem is that if the behaviortree library uses these dependencies internally, vendored, or something like that (it seems so https://github.com/BehaviorTree/BehaviorTree.CPP/tree/master/3rdparty), and the behaviortree library is used together with these vendored libraries, there could easily be linking errors, right? In principle, vendored libraries are not allowed in ConanCenter.
I'd like to understand a bit better about this.
Conan v1 pipeline ❌Sorry, the system is under maintenance and it doesn't accept builds right now. Conan v2 pipeline ❌
The v2 pipeline failed. Please, review the errors and note this will be required for pull requests to be merged in the near future. See details:Sorry, the system is under maintenance and it doesn't accept builds right now. |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This pull request has been automatically closed because it has not had recent activity. Thank you for your contributions. |
behaviortree.cpp/4.1.1
behaviortree.cpp/4.0.2
behaviortree.cpp/3.8.3
This PR is based on #16189