diff options
Diffstat (limited to 'src/targetfile.cpp')
-rw-r--r-- | src/targetfile.cpp | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/targetfile.cpp b/src/targetfile.cpp index 0299f9d..dd0de9e 100644 --- a/src/targetfile.cpp +++ b/src/targetfile.cpp | |||
@@ -27,9 +27,8 @@ void TargetFile::check( Build &bld ) | |||
27 | { | 27 | { |
28 | time_t tTarget = getTime( bld, (*i)->getTarget() ); | 28 | time_t tTarget = getTime( bld, (*i)->getTarget() ); |
29 | StringList &reqs = bld.getRequires( (*i)->getTarget() ); | 29 | StringList &reqs = bld.getRequires( (*i)->getTarget() ); |
30 | FunctionList::iterator f = (*i)->getReqFuncs().begin(); | 30 | bool bExtras = false; |
31 | bool bBuilt = false; | 31 | for( StringList::iterator j = reqs.begin(); j != reqs.end(); j++ ) |
32 | aastrt: for( StringList::iterator j = reqs.begin(); j != reqs.end(); j++ ) | ||
33 | { | 32 | { |
34 | if( getTime( bld, *j ) > tTarget ) | 33 | if( getTime( bld, *j ) > tTarget ) |
35 | { | 34 | { |
@@ -37,22 +36,21 @@ aastrt: for( StringList::iterator j = reqs.begin(); j != reqs.end(); j++ ) | |||
37 | (*i)->execute( bld ); | 36 | (*i)->execute( bld ); |
38 | bld.getView()->endPerform(); | 37 | bld.getView()->endPerform(); |
39 | updateTime( (*i)->getTarget() ); | 38 | updateTime( (*i)->getTarget() ); |
40 | bBuilt = true; | ||
41 | break; | 39 | break; |
42 | } | 40 | } |
43 | } | 41 | if( bExtras == false ) |
44 | if( bBuilt == true ) | 42 | { |
45 | continue; | 43 | StringList::iterator jj = j; |
46 | 44 | jj++; | |
47 | if( f != (*i)->getReqFuncs().end() ) | 45 | if( jj == reqs.end() ) |
48 | { | 46 | { |
49 | StringList lTmpIn; | 47 | if( !bld.getCached( (*i)->getTarget(), tTarget, reqs ) ) |
50 | lTmpIn.push_back( (*i)->getTarget() ); | 48 | { |
51 | bld.getView()->beginRequiresCheck( false, (*i)->getTarget() ); | 49 | bld.updateCache( (*i)->getTarget(), (*i)->getReqFuncs(), reqs ); |
52 | (*f)->execute( &bld, lTmpIn, reqs ); | 50 | } |
53 | bld.getView()->endRequiresCheck(); | 51 | bExtras = true; |
54 | f++; | 52 | } |
55 | goto aastrt; | 53 | } |
56 | } | 54 | } |
57 | } | 55 | } |
58 | } | 56 | } |