-
Notifications
You must be signed in to change notification settings - Fork 280
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
CATKIN_SETUP_DIR breaks chaining/switching workspaces #505
Comments
@dirk-thomas will probably respond on this. |
Can you please post a command sequence which can be executed to reproduce your scenario? |
Here is an example scenario with a rosbuild workspace overlaying a catkin workspace overlaying
The problem is not related to rosbuild/rosws only. The thing is that the first line sets the If you start with a clean environment, the |
Thanks for the detailed report. I was able to unset CATKIN_SETUP_DIR (now with a prefix for indicating that it is meant to be private). That also applied to other variable but they were cleanly overwritten every time - not like CATKIN_SETUP_DIR which was not set if already existing. |
Related question on ROS answers: http://answers.ros.org/question/80231/cannot-build-rosbuild-workspace-on-top-of-catkin-workspace-in-hydro/ @dirk-thomas Can you give an estimate when this fix will be released in groovy/hydro? |
I just released catkin 0.5.74. The rebuild of all packages on the farm + syncing to the repos will take a while... Yes, catkin will regenerate existing setup files when being invoked the next time. |
I experienced the following problem that causes weird errors when chaining workspaces using rosws or switching between catkin workspaces without properly resetting the environment before.
The
setup.sh
files generated by catkin since 0.5.72 use theCATKIN_SETUP_DIR
variable to find out to which workspace they belong and only use the absolute path as a default value. This variable influences theCMAKE_PREFIX_PATH
set and which _setup_util.py will be executed.If I use
setup.bash
, theCATKIN_SETUP_DIR
will be overridden on each invocation and everything is fine. But if I sourcesetup.sh
directly and there is already aCATKIN_SETUP_DIR
in the environment, theCMAKE_PREFIX_PATH
and other variables will not be set correctly, but always use the workspace whereCATKIN_SETUP_DIR
points to. This is what tools likerosws
do all the time as they read the.rosinstall
file generated by catkin.A simple solution would probably be to unset
CATKIN_SETUP_DIR
at the end ofsetup.sh
. At least catkin behaves as before 0.5.72 if I add this line to allsetup.sh
files manually. Not sure ifCATKIN_SETUP_DIR
is used elsewhere?The text was updated successfully, but these errors were encountered: