-
Notifications
You must be signed in to change notification settings - Fork 80
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
Portable install space #303
Comments
Unfortunately not easily as of today. The primary reason is that Orocos creates libraries at locations below Without changing this fundamental design of the Orocos plugin system there is no easy way to relocate an install-space because setting We could leave this issue open as a feature request, but it will probably not be implemented soon and require quite some changes. Unless someone has a better idea how to solve it. |
@ahoarau What do you mean by "portable"? Do you want an install that you can move to an arbitrary location(s), or do you want the simpler version where you build/install in one location and then move the install to another a priori known location? The second one is mostly supported by DESTDIR type semantics in Orocos, though some of the hard coded paths might need fixing. The first one is much more difficult due to RPATH and other considerations, let alone the hard coded paths. |
Couldn't we make use of
instead of
(taken from |
I was not aware of The orocos_set_install_rpath() macro already adds all the library dirs of used dependencies (passed from The absolute paths are also written to the pkg-config files generated by orocos_generate_package() and parsed by the orocos_find_package() and orocos_use_package() macros. Finding packages and libraries at build-time from a relocated install-space from only A pull request that suggest the necessary changes for further testing would be very welcome. Wiki page about RPATH handling with CMake: |
In all honesty I think you might need both options, to support the different use cases; 1) for system level installs or alternate install spaces, where absolute paths are required, and 2) when installing in your application install space, and then relative paths are ok. Also, certainly on the Mac you need full path for system installed shared libraries due to lack of DYLD_LIBRARY_PATH for security reasons. |
In 'deployer' script, if we replace:
by
It seems to work for loading everything. Question2: Is there a way to just install eveything in '/lib', rather than '/lib/orocos//types/' etc ? |
For the "$ORIGIN in Rpath solution", I have a CMake function that fixes the RPATH of already compiled .so. It could also be used to fix the RPATH before the compilation. |
|
I totally agree that this would be much simpler, but unfortunately not without refactoring the What was question 1? ;-)
I agree with @snrkiwi that there are cases where absolute paths are required. But it is not because of
Using a relative So some magic would be required in orocos_set_install_rpath() to configure the I'll give it a try this week, but a pull request with whatever approaches you already tested would be helpful as a starting point. |
Nice explanation of RPATH handling and respective CMake options: |
Is there a way for OROCOS in a ROS environnement to get a 'portable' install space ?
So far
rtt
andocl
creates files () that contain hardcoded path. There must be something do to with the variables contained insetup.sh
?Context:
The text was updated successfully, but these errors were encountered: