catkin/catkin_tools — pull request #80 by jbohren (2014-07-07 19:25:23+00:00)
Title: Metadata File and Associated Verbs

This PR (wip) covers a branch of catkin_tools which creates a metadata file called `.catkin_tools.yml` in the root of a catkin workspace. This file nominally contains information like the following (showing default header and default additions from calling `catkin build`:

```yml
### DO NOT EDIT, generated automatically and updated automatically by catkin_tools
### If you delete this file, it will cause `catkin build` to re-build from scratch.
### If you modify this file, it may have unintended side-effects on your workspace.
build:
build_space: build
devel_space: devel
source_space: src
```

Once complete, this PR should address the needs of the following issues:
- (#27) *build: Add marker file to workspace root*
- Adds the marker file.
- (#67) *new verb proposal: catkin info*
- Creates the verb which dumps the marker file info along with other information.
- (#10) *build: allow execution from anywhere under the root of the workspace*
- Uses the marker file to find the root of the workspace, and then build from there.
- (#68) *build: Add "--clear-cmake-cache" argument`
- Adds a `clean` verb.

TODO(NE):
- [x] enable building from anywhere in the source tree
- [ ] enable context-aware building of a package (only that package, starting with that package, or that package and deps)
- [ ] add `info` verb to dump workspace information
- [ ] add `clean` verb which deletes `buid/`, `devel/` and re-initializes `.catkin_tools.yml`
- [ ] add `--cmake-cache-only` argument to `catkin clean`