-
Notifications
You must be signed in to change notification settings - Fork 11
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
Registration of Taskflow in CMake package registry breaks workspace isolation #18
Comments
I imagine this is something wrong with my setup, but I thought it sufficiently bizarre that I would post it in case anyone else runs into it. |
Ah, so this is something we've also run into (@IKapitaniuk). This actually is not caused by names of workspaces, but by the CMake Package registry. @IKapitaniuk: could you perhaps add what you found out? |
@mpowelson: I hope you don't mind I updated the title of the issue. |
@IKapitaniuk: could you try disabling searching the registry for Taskflow using the variables mentioned here: Disabling the Package Registry? It might be sufficient to before the @Levi-Armstrong: I'm not sure the package registry would be compatible with the isolation a Catkin/Colcon workspace provides/requires. Thoughts? Edit: you could apparently also add Edit 2: apparently this line registers Taskflow in the user package registry (docs).
|
I know this does not resolve this issue but we have released taskflow as a debian. |
@gavanderhoorn I agree this should be disabled. I was not aware of this CMake feature until recently, but I believe this is something catkin/colcon should be disabling? Other references found with similar issues. |
Colcon has helpers for specific build systems, so this could be something to suggest adding as a default. The helper for CMake is colcon/colcon-cmake. We could open an issue there to discuss. For Catkin, this could potentially be added, but I'm not sure that will happen. I was going to suggest opening issues on |
I opened one on catkin. I will create one on colcon too. |
Disabling it blanketly could make it harder for users which would like CMake to find a package they're building from source to get it to notice it. But then again: those users should probably not be building such a package in a Catkin/Colcon workspace (as that implies they'd like to exploit the isolation it offers). |
It is unclear to me how this is leveraged within cmake. When you perform a find_package does it first search the user package registry, then system registry, the look for a Config.cmake? Or does it only look in the registry if it is unable to find the Config.cmake? |
The list of locations searched is documented in the find_package(..) docs. I can't link to it directly, but if you search for "The set of installation prefixes is constructed using the following steps" you should find it. Registries are searched almost last (only locations passed using Given this, you'd expect CMake to be able to find Taskflow in the workspace before looking in the registry .. Is there perhaps something wrong with the way Taskflow is installed into the workspace? I haven't checked what options you pass the external project macro. |
So we did find they were installing it into a incorrect location which was fixed in this PR. I assumed since this was created after that fix that this was not the issue, but not certain. |
@mpowelson When you experienced this were you using a branch that had the install location fix for taskflow? |
It's a bit late, but here are some particular details regarding the issue. The CMake package registry is located in
where
In a normal situation, CMake searches in the following places:
When we run from another workspace we got this:
@gavanderhoorn I've just tested it using set(CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY 1) - It works, I've managed to build Taskflow. |
I should have been. I posted this on the day that I had it, so that fix should have been in master. |
@Levi-Armstrong We ran into this again. Should we just add |
I believe catkin should be passing these when building. Are you asking if we should add these to every package? |
If so, do they only need to be added to the packages in tesseract_ext? |
Taskflow seems to be the only one causing problems. |
I created PR #20 so it does not export to the registry. |
When I build test_ext with this directory structure it fails.
When I change it to this it works
Here is the error
The text was updated successfully, but these errors were encountered: