-
Notifications
You must be signed in to change notification settings - Fork 487
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
User dependent gazebo installation #2782
Comments
At least for the CMake aspect, this problem is also tracked in #2755, even if I do not think that anyone is actively working on it. For the paths that contained the hardcoded installation prefix in them, in general the suggestion is always to source the |
Cool, thanks. I'll have a look. Would such a change be merge request worthy? |
In my opinion definitely, and I would be happy to provide feedback as I would be happy to not have to mantain my own scripts for that. However let's see what the Gazebo maintainers think about this. Unrelated comment: do you have any plan to open source your Gazebo conan recipes? |
No plans so far. They're also rather rudimentary at this point. Just to compile stuff. No options. But could serve as a starting point for the community. |
The CMake config used absolute paths which doesn't allow to move the installed cmake files. This is the case, e.g., if you create a conan package and distribute the binaries to other users. Fixes: gazebosim#2755 Fixes: gazebosim#2782
The CMake config used absolute paths which doesn't allow to move the installed cmake files. This is the case, e.g., if you create a conan package and distribute the binaries to other users. Fixes: gazebosim#2755 Fixes: gazebosim#2782
The CMake config used absolute paths which doesn't allow to move the installed cmake files. This is the case, e.g., if you create a conan package and distribute the binaries to other users. Fixes: gazebosim#2755 Fixes: gazebosim#2782
I had forgot about this issue, but as it is related to conan I guess @joxoby could also be interested in this. |
The CMake config used absolute paths which doesn't allow to move the installed cmake files. This is the case, e.g., if you create a conan package and distribute the binaries to other users. Fixes: gazebosim#2755 Fixes: gazebosim#2782
This sounds confusing to me. Conan itself will generate the required |
This is only true, if you use the |
Normally, you wouldn't package the More info: https://blog.conan.io/2018/06/11/Transparent-CMake-Integration.html |
I am probably missing something, but it seems that
So if I have an open source codebase that supports consuming dependencies via multiple package managers ( Furthermore, how can this work with complex libraries such as Qt that also need to install CMake macros? |
I might need to see a concrete example.
Great question. To be clear, the hook restriction is trying to avoid that you don't package the pacakge's own @stefanbuettner, if you'd like, you can try making a PR to upload your recipes to conan-center-index. Besides making them available to other people, the main Conan reviewers will provide you with great feedback on best practices. |
Quoting the blogpost, if I have a project that uses |
The blogpost can be misleading in that specific example. For any Conan package, you can set the name that the generator will use to create the |
Cool, that is much more clear, I just have two more doubts:
In any case, a personal note: even if the approach of trying to avoid build system-specific formats is quite interesting, replicating all the information of the imported target in manually maintained (and package manager-specif) python scripts (see for example https://github.com/conan-io/conan-center-index/pull/3215/files#diff-68a42dbaa991102b8ab0fa45fa4ed20dae5b48e127822865644e071974f6be07R126) may be error-prone in some cases. A possible solution for this would be a real cross-build-system format to express C++ library information, instead of relying on CMake config files and |
Indeed, I found a related conan discussion in conan-io/conan#4878 . |
* fix: Use proper cmake package config for relocatable CMake config * Fix relative path in pkg-config files The CMake config used absolute paths which doesn't allow to move the installed cmake files. This is the case, e.g., if you create a conan package and distribute the binaries to other users. Fixes: #2755 Fixes: #2782 Co-authored-by: Steve Peters <scpeters@openrobotics.org>
#2879 makes CMake config packages relocatable, but some other files in Gazebo (in particular the |
fyi @mboisson |
Hey there,
I want to provide Gazebo via the conan package manager to some colleagues. Building all the components worked like a charm using conan's cmake build helpers and git tool. Also gazebo starts without problems for my user and I can compile plugins against the Gazebo C++ API using cmake.
However, if I upload the built package to our Artifactory server, and another user installs the pre-built binaries, Gazebo doesn't start and
find_package
cannot find Gazebo anymore.We were able to start Gazebo under the other user by providing the environment variable
GAZEBO_RESOURCE_PATH
(see PX4/PX4-Avoidance#177).But in general it seems that user-specific paths are compiled into the generated packages, both in cmake config files and so-files.
Is this the case? And if so, can Gazebo and its dependencies be compiled in a user-independent manner?
I could not find cmake options in any of the packages. I also didn't find any pointers in the documentation or READMEs.
Cheers,
Stefan
The text was updated successfully, but these errors were encountered: