<> <> == Conceptual Overview == For an explanation of the design goals and design decisions, in addition to the rationale for why Catkin ("''yet another build system?''") was created, see the [[catkin/conceptual_overview]] page. {{{#!wiki version fuerte '' '''Note for ROS Fuerte Users:''' An experimental version of catkin was released with ROS Fuerte that is quite different from the version in Groovy. Those using ROS Fuerte should continue utilizing [[rosbuild|rosbuild]].'' }}} == Installing catkin == <> Catkin is included by default when ROS is installed. Catkin can also be installed from source or prebuilt packages. Most users will want to use the prebuilt packages, but installing it from source is also quite simple. === Install Prebuilt Package === If you are using a ROS binary distribution (Groovy or higher) on Ubuntu then you can install catkin with `apt-get`: {{{ sudo apt-get install ros-$ROS_DISTRO-catkin }}} Most ROS installations will include this by default. === Install From Source === Catkin has the following dependencies: * [[http://cmake.org/|CMake]] - A cross-platform, open-source build system. * [[http://python.org/|Python]] - Python is a general-purpose, interpreted high-level programming language. Version 2.7 is required ([[http://answers.ros.org/question/64874/what-python-version-does-catkin-require/|reference]]). * [[http://www.ros.org/wiki/catkin_pkg|catkin_pkg]] - A Python runtime library for catkin. * [[http://www.alcyone.com/pyos/empy/|empy]] - A Python template library. * [[https://nose.readthedocs.org/en/latest/|nose]] - A Python testing framework. * [[http://code.google.com/p/googletest/|GTest]] - A cpp unittest framework from Google. * [[http://gcc.gnu.org/ | GNU C++ Compiler (g++)]] - The GNU C++ compiler You can resolve these dependencies on Ubuntu with this command: {{{ sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev build-essential }}} If you are '''not''' on Ubuntu you can install `catkin_pkg` from [[http://pypi.python.org/pypi|PyPi]] via pip. {{{#!wiki blue/solid If you have trouble installing the python-* packages in the command above, make sure you have added the packages.ros.org debian repository to your apt source lists as described [[groovy/Installation/Ubuntu#groovy.2BAC8-Installation.2BAC8-Sources.Setup_your_sources.list |on this page.]] }}} Then install catkin like any CMake package {{{ mkdir build && cd build && cmake ../ && make && sudo make install }}} {{{#!wiki blue/solid '''Note:''' You usually want to pass a specific build type when invoking CMake, e.g. `cmake -DCMAKE_BUILD_TYPE=Release ../` (or `RelWithDebInfo` / `Debug` instead of `Release`, see http://cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_BUILD_TYPE). }}} == Migrating from rosbuild == See [[catkin/migrating_from_rosbuild]] == External Documentation == See the external [[http://ros.org/doc/api/catkin/html/|catkin docs]] containing: * How to do common tasks * User guide * Advanced user guide * Information for developers * Using catkin with Python http://docs.ros.org/api/catkin/html/user_guide/setup_dot_py.html == Tutorials == * See [[catkin/Tutorials]] * [[catkin/MigratingMetapackagesToIncludeCMakeLists.txt|Migrating to metapackages with CMakeLists.txt]] == Configuration File References == * [[catkin/package.xml]] * [[catkin/CMakeLists.txt]] * [[http://docs.ros.org/api/catkin/html/user_guide/setup_dot_py.html | catkin/setup.py]] == Glossary of Terms == See [[catkin/Glossary]] === REPs === * [[http://ros.org/reps/rep-0122.html | FHS in ROS (122)]] * [[http://ros.org/reps/rep-0124.html | roslaunch and rosrun for catkin (124)]] * [[http://www.ros.org/reps/rep-0127.html | package manifest format (127)]] * [[http://www.ros.org/reps/rep-0128.html | catkin workspace layout (128)]] === Code Reviews === * [[catkin/Reviews|Reviews]] == Report a Bug == [[https://github.com/ros/catkin/issues|GitHub ros/catkin]]