Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Continuous build on the cheap, using inotify, cmake and a terminal
# Watch paths (given as arguments), automatically build when something changes.
# The script does a couple opinionated things to make my life easier:
# * Terminal scrollbuffer is reset before each iteration, simplifying scrolling.
# * I use a filter script to colorize gcc output (clang errors would be nicer).
# * Output is copied to a log file (/tmp/build.log).
# - I open this file in Sublime or vim, which reloads the file on change (each build).
# Usage:
# devbox:myproject$ mkdir -p build && cd build
# devbox:build$ cmake ..
# devbox:build$ inotify-cmake ../src ../test ../CMakeLists.txt
# ... Profit!
# Note: comes from
inotifywait -q -r -e create,modify,move,delete $@ && \
echo -ne "\033c" && \
(cmake --build . && echo done.) 2>&1 | tee /tmp/build.log \
| -o
exec $0 $@
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment