# cclean: a cmake sanitizer
# SUMMARY
cclean cleans up cmake's messiest build artifacts.
# EXAMPLE
```console
$ cd example
$ cmake .
$ cmake --build . --target hello
$ tree
.
├── CMakeCache.txt
├── CMakeFiles
...
├── CMakeLists.txt
├── Makefile
├── bin
│ └── hello
├── cmake_install.cmake
└── hello.c
$ cclean
$ tree
.
├── CMakeLists.txt
└── hello.c
```
See `cclean -h` for more options.
# ABOUT
cclean assists cmake with removing common internal artifacts. This is helpful for freeing up disk space.
cmake often enters a corrupt state, requiring manual intervention. cclean automates the process of resetting cmake back to a clean state.
cclean is particularly helpful for cross-platform workflows. For example, when building the same host directory once in WSL, and then again in PowerShell.
# NOTABLE FEATURES
* cclean runs independently of cmake, enabling it to remove sticky cmake artifacts like `.ninja_log`
* cclean removes custom `-B` build directories
* cclean wraps the cmake global `clean` target
* cclean removes cached `conan` packages
Like cmake, cclean encourages portable build steps. This enables cmake projects to build more reliably on more environments.
# WARNING
Configure the cmake global `clean` target (esp. `ADDITIONAL_CLEAN_FILES`) carefully, in order to avoid accidents.
# CRATE
https://crates.io/crates/cclean
# INSTALL FROM SOURCE
```console
$ cargo install --force --path .
```
# RUNTIME REQUIREMENTS
* [cmake](https://cmake.org/) 3.4+
# CONTRIBUTING
For more details on developing cclean itself, see [DEVELOPMENT.md](DEVELOPMENT.md).
# LICENSE
FreeBSD
# SEE ALSO
* [git](https://git-scm.com/), a distributed version control system
* [gitignore.io](https://www.toptal.com/developers/gitignore), community maintained gitignore templates
* [make](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html), the classic, plain build system
* [ninja](https://ninja-build.org/), the fast, plain build system
* [unmake](https://github.com/mcandre/unmake), a linter for manually written makefiles