Giter Club home page Giter Club logo

watch_ninja's Introduction

watch_ninja

watch_ninja combines the awesome ninja build system with the power of inotify to rebuild source files as you edit them.

Installing

go get github.com/scottfranklin/watch_ninja

(Binary distributions of Go1 do not include the inotify library. If you are using one, the necessary files will be fetched from github.com/dersebi/go_exp.)

Usage

cd your/ninja/project
watch_ninja

watch_ninja will rebuild the first target that depends on any source file you modify, and it will automatically keep its source list up to date as you modify build.ninja.

Known Issues

Automatic reload of source file list does not play nicely with subninjas, though if your build.ninja is always the last thing to be modified, then things should work ok.

watch_ninja's People

Contributors

scottfranklin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

codyps

watch_ninja's Issues

header dependencies not watched

(note: I'm using meson to generate my ninja files, which might affect things)

ninja -t targets rule appears to only list files explicitly listed as the inputs for targets, causing it to miss includes (and other files determined to be dependencies by ninja)

One option is using ninja -t targets all lists all targets, and then one can use ninja -t query TARGET_NAME to get it's inputs. I'm not sure how well querying things like this will scale for large projects.

An alternate may be to use ninja -t deps instead, which dumps dependencies in the .ninja_deps file, but there would need to be a bit of work to ensure it's up to date (given that complete builds aren't run right by watch_ninja) and would need to be merged with targets rule

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.