aboutsummaryrefslogtreecommitdiff
path: root/src/targetfile.cpp
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2006-09-12 17:30:23 +0000
committerMike Buland <eichlan@xagasoft.com>2006-09-12 17:30:23 +0000
commite2c430b237da5c0229fd8e0832eedc3b85045ec0 (patch)
tree2f14481a9622c1d9ee913456f12ffb6cdfd53eef /src/targetfile.cpp
parentdaa9ab77fa7ff88a77e028270ec32fa4f3e6d3bb (diff)
downloadbuild-e2c430b237da5c0229fd8e0832eedc3b85045ec0.tar.gz
build-e2c430b237da5c0229fd8e0832eedc3b85045ec0.tar.bz2
build-e2c430b237da5c0229fd8e0832eedc3b85045ec0.tar.xz
build-e2c430b237da5c0229fd8e0832eedc3b85045ec0.zip
Added cache functionality, which is really nice, things go much faster now.
Diffstat (limited to 'src/targetfile.cpp')
-rw-r--r--src/targetfile.cpp32
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++ )
32aastrt: 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}