redo-ifchange: call builder directly, rather than forking redo.
Now we no longer rebuild the same stuff over and over!
This commit is contained in:
parent
f7734c3b8d
commit
22f8cb48f4
1 changed files with 9 additions and 3 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/python
|
||||
import sys, os, errno
|
||||
import vars, state
|
||||
import vars, state, builder
|
||||
from helpers import debug, err, mkdirp, unlink
|
||||
|
||||
|
||||
|
|
@ -39,10 +39,16 @@ def dirty_deps(t, depth, fromdir=None):
|
|||
return False
|
||||
|
||||
|
||||
def maybe_build(t):
|
||||
if dirty_deps(t, depth = ''):
|
||||
builder.build(t)
|
||||
|
||||
|
||||
if not vars.TARGET:
|
||||
err('redo-ifchange: error: must be run from inside a .do\n')
|
||||
sys.exit(100)
|
||||
|
||||
rv = 202
|
||||
try:
|
||||
want_build = []
|
||||
for t in sys.argv[1:]:
|
||||
|
|
@ -50,7 +56,7 @@ try:
|
|||
if dirty_deps(t, depth = ''):
|
||||
want_build.append(t)
|
||||
|
||||
if want_build:
|
||||
os.execvp('redo', ['redo', '--'] + want_build)
|
||||
rv = builder.main(want_build, maybe_build)
|
||||
except KeyboardInterrupt:
|
||||
sys.exit(200)
|
||||
sys.exit(rv)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue