Pre- and Post-installation Disk Layout reference ================================================ .. _toplevel_bin: The toplevel bin/ directory --------------------------- This shouldn't contain very much... just "anointed" central binaries used by the entire distribution. Most programs (like ROS nodes) will reside in each package's ``bin/`` directory. Pre-installation ---------------- .. highlight:: catkin-sh .. rubric:: Source directory e.g. for project 'proj':: src/ proj/ CMakeLists.txt stack.xml # explains interstack dependencies and debian-generating rules msg/ ProjMsg.msg srv/ ProjSrv.srv src/ proj/ __init__.py othercode.py libproj/ CMakeLists.txt proj.cpp include/ proj/ proj.hpp otherheaders.hpp .. rubric:: Build directory :: build/ env.sh setup.sh setup.bash setup.zsh etc/ catkin/ profile.d/ 00.catkin.buildspace.sh # env hooks. this one is a placeholder added by catkin. 10.ros.buildspace.sh # e.g. the one from ROS packages.list # mapping from pkg name to subdirectory of build/src dirs, see below gen/ cpp/ # All generated C++ headers go here. proj/ ProjMsg.h ProjSrvRequest.h ProjSrvResponse.h py/ # All generated python goes here. proj/ __init__.py # uses pkgutil to add src/proj/src/ to pythonpath msg/ __init__.py # generated code _ProjMsg.py _ProjSrvRequest.py _ProjSrvResponse.py lib/ # all compiled libraries go here libproj.so proj/ # the usual cmake-generated stuff. Makefile CMakeFiles/ cmake_install.cmake Post-installation ----------------- :: /opt/ros/fuerte/ # CMAKE_INSTALL_PREFIX bin/ roscore # possibly some special anointed binaries rosbag@ # symlink to share/rosbag/bin/rosbag setup.sh # generated for this environment by catkin env.sh lib/ libros.so # shared libraries for all packages libcpp_common.so librostime.so libfoo.a # also static libraries pythonX.Y/ # python from all packages rospy/ __init__.py # static code client.py core.py ... std_msgs/ __init__.py # generated code pkgconfig/ # pkgconfig files are autogenerated roscpp_serialization.pc nav_msgs.pc include/ # all includes, together. std_msgs/ Float64.h # generated header ros/ node_handle.h # "static" hand-coded header time.h xmlrpc_manager.h etc/ catkin/ profile.d/ 00.catkin.sh 10.ros.sh ros/ rosinstall.conf # used by rosinstall to set ROS_PACKAGE_PATH langs/ # to determine which code generators are available. roscpp # contains "C++" rospy # contains "Python" depends.yaml # rosdep main database depends.d/ 00_something.yaml # addons 10_somethingelse.yaml share/ # During transition, this is also ROS_PACKAGE_PATH roscpp_tutorials/ # one dir like this per package manifest.xml # thunk to pkgconfig for transition; # takes care of exporting to legacy rosmake. bin/ talker # possibly linked-to from CMAKE_PREFIX_PATH/bin listener cmake/ # cmake infrastructure, per-package roscpp_tutorials-config.cmake roscpp_tutorials-config-version.cmake messages.cmake msg/ Foo.msg Bar.msg action/ something.launch # the rest is as the package installs it stacks/ dry_stack1 # built/installed via rosmake dry_stack2 # built/installed via rosmake Notes on individual files ------------------------- .. index:: double: packages.list; files in etc/ .. _etc/packages.list: ``etc/packages.list`` ^^^^^^^^^^^^^^^^^^^^^ Contains a mapping of package name to path-to-the-package-relative-to-\ ``CATKIN_(BUILD|SOURCE)_DIR``, e.g.:: XmlRpc ros_comm/utilities/xmlrpcpp catkin catkin cpp_common roscpp_core/cpp_common gencpp gencpp genmsg genmsg genpy genpy genpybindings genpybindings geometry_msgs common_msgs/geometry_msgs nav_msgs common_msgs/nav_msgs nolangs nolangs rosconsole ros_comm/tools/rosconsole roscpp ros_comm/clients/cpp/roscpp roscpp_serialization roscpp_core/roscpp_serialization roscpp_traits roscpp_core/roscpp_traits rosgraph_msgs ros_comm/messages/rosgraph_msgs roslib ros/core/roslib rospy ros_comm/clients/rospy rostime roscpp_core/rostime sensor_msgs common_msgs/sensor_msgs std_msgs std_msgs