How to configure catkin + catkin_pkg from source?
This question is related to http://answers.ros.org/question/64702... but it seemed better to ask separately than to hijack that thread.
I'm using catkin as a build tool from source. Basically, I want to have a base workspace that just contains catkin so that I can chain workspaces from there by using the setup.bash file. However, every catkin package (including catkin itself) depends on catkin_pkg. Since we are using catkin_pkg from source as well, I was hoping to be able to manually point to the catkin_pkg python files while configuring the catkin workspace, and have those files available in chained workspaces as well. I tried the following to "build" catkin:
export PYTHONPATH=/path_to_custom_install_dir_for/catkin_pkg/src:$PYTHONPATH
cmake .. (with appropriate build and install dirs set)
make
But, when I source the setup.bash file that is created, the PYTHONPATH only has catkin, not my custom path to catkin_pkg.
Am I misunderstanding what about "the environment in which it was created" is pulled in when sourcing the setup file? Or, is there a smarter way to set up catkin + catkin_pkg from source in user-space? (I don't want to install it via apt-get or pip).
EDIT based on comments below:
Say I have workspaces A, B, C.
Now I:
- add catkin_pkg to my PYTHONPATH
- source ws_A/devel/setup.bash (PYTHONPATH now has both catkin_pkg and the ws_A stuff)
- build ws_B.
- In a new terminal, I source ws_B/devel/setup.bash, and then try to build ws_C.
Should I expect to see catkin_pkg on the PYTHONPATH in the new terminal? I think that's what I'm doing now, but the catkin_pkg that was on the PYTHONPATH when building B doesn't get passed along through the setup.bash. It's fine if the answer is "that doesn't work", I just want to be sure before I pick a different design.
That is the case, the PYTHONPATH will not be preserved by the setup file. The setup file will add any underlaid workspaces in your environment to your PYTHONPATH, but if catkin_pkg is not installed into one of these "underlays" then it will not get set by the generated setup files.