-
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_make_isolated now generates environment setup files without source packages #423
Conversation
…les without any source packages. Things do not work correctly at this commit.
…nt setup files without source packages
Why do you want the environment files be generated in the first place? After adding packages to the workspace and building it again with catkin_make_isolated the generated environment is different. So a previously sourced setup.sh file (which was generated for the empty workspace) will be incomplete. You have to source the updated one again. With this I am not sure why an empty workspace should provide any environment files (except placebos in order to just be there). Furthermore you can not assume that there is only a single entry in the CMAKE_PREFIX_PATH. This might only be true for standard cases. |
…es through catkin_make_isolated when no source packages are present (ros#423). This is done by duplicating a bit of code from cmake/python.cmake
I'll try to explain my use case. I believe placebos are necessary to ensure that workspace chains are not broken. I have an automated script primarily designed for students unfamiliar with ROS that generates a rosbuild and a catkin workspace and overlays the rosbuild ws on top of the catkin one. I would prefer to chain the workspaces through catkin_make_isolated in case any plain cmake packages are inside the catkin workspace in the future. Currently there are no guarantees for the setup script to exist in devel_isolated which can break this chain and I have to manually fix it. I agree that a previously sourced setup.sh file will be incomplete, but it was my understanding that this is true whenever packages are changed in src. For instance, If I add a new package to other existing packages in the src directory, I still need to resource devel_isolated/setup.bash (aka restart the terminal) to see updates for all the environment variables. You are completely right about the CMAKE_PREFIX_PATH. I misinterpreted how catkin_make was handling it. I have updated the pull request. Thanks! |
I do see your need to have these scripts available under But why should the builder script mimic the same behavior as the CMake invocation and generate the |
I completely agree with trying to prevent logic duplication. Could you comment more on the relays. I can create the relays in my script, but in my opinion catkin_make_isolated should provide this functionality.
If you have suggestions on setting up relays, then let me know and I'll update the pull request. The current patch won't add any paths in |
I have updated your patch quite a bit. Please take a look at the new pull request #425 and check that these changes work for your use case. |
Closing in favor of #425. Thank you for the patch! |
See http://answers.ros.org/question/62901/should-catkin_make_isolated-generate-some-initial-setup-files-without-packages-in-src/ for context.
This patch includes the following changes: