``catkin clean`` -- Clean Build Products ======================================== The ``clean`` verb makes it easier and safer to clean various products of a catkin workspace. In addition to removing entire **build**, **devel**, and **install spaces**, it also gives you more fine-grained control over removing just parts of these directories. The ``clean`` verb is context-aware, but in order to work, it must be given the path to an initialized catkin workspace, or called from a path contained in an initialized catkin workspace. Space Cleaning ^^^^^^^^^^^^^^ For any configuration, any of the active profile's spaces can be cleaned entirely. This includes any of the top-level directories which are configured for a given profile. See the full command line interface for specifying specific spaces to clean. To clean all of the spaces for a given profile, you can call the ``clean`` verb without arguments: .. code-block:: bash catkin clean When running this command, ``catkin`` will prompt you to confirm that you want to delete the entire directories: .. code-block:: bash $ catkin clean [clean] Warning: This will completely remove the following directories. (Use `--yes` to skip this check) [clean] Log Space: /tmp/quickstart_ws/logs [clean] Build Space: /tmp/quickstart_ws/build [clean] Devel Space: /tmp/quickstart_ws/devel [clean] Are you sure you want to completely remove the directories listed above? [yN]: If you want to skip this check, you can use the ``--yes`` or ``-y`` options: .. code-block:: bash $ catkin clean -y [clean] Removing develspace: /tmp/quickstart_ws/devel [clean] Removing buildspace: /tmp/quickstart_ws/build [clean] Removing log space: /tmp/quickstart_ws/logs .. note:: The ``clean`` verb will also ask for additional confirmation if any of the directories to be removed are outside of your workspace root. To skip this additional check, you can use the ``--force`` option. Partial Cleaning ^^^^^^^^^^^^^^^^ If a workspace is built with a ``linked`` **devel space**, the ``clean`` verb can be used to clean the products from individual packages. This is possible since the ``catkin`` program will symbolically link the build products into the **devel space**, and stores a list of these links. Cleaning a Single Package ------------------------- Cleaning a single package (or several packages) is as simple as naming them: .. code-block:: bash catkin clean PKGNAME This will remove products from this package from the devel space, and remove its build space. Cleaning Products from Missing Packages --------------------------------------- Sometimes, you may disable or remove source packages from your workspace's **source space**. After packages have been removed from your **source space**, you can automatically clean the "orphaned" products with the following command: .. code-block:: bash catkin clean --orphans Cleaning Dependent Packages --------------------------- When cleaning one package, it's sometimes useful to also clean all of the packages which depend on it. This can prevent leftover elements from affecting the dependents. To clean a package and only the packages which depend on it, you can run the following: .. code-block:: bash catkin clean --dependents PKGNAME Cleaning Products from All Profiles ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ By default, the ``clean`` operating is applied only to the active or specified profile. To apply it to *all* profiles, use the ``--all-profiles`` option. Cleaning Everything ^^^^^^^^^^^^^^^^^^^ If you want to clean **everything** except the source space (i.e. all files and folders generated by the ``catkin`` command, you can use ``--deinit`` to "deinitialize" the workspace. This will clean all products from all packages for all profiles, as well as the profile metadata, itself. After running this, a ``catkin_tools`` workspace will need to be reinitialized to be used. .. code-block:: bash catkin clean --deinit Full Command-Line Interface ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. literalinclude:: cli/catkin_clean.txt :language: text