diff options
author | Mike Buland <eichlan@xagasoft.com> | 2006-08-02 06:54:48 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2006-08-02 06:54:48 +0000 |
commit | 062fcfb96c56ecfb69b8c3162ced65b63e863752 (patch) | |
tree | 59fbd75fe3ff72776556be8f7e9782726396fc06 /src/filetarget.cpp | |
parent | 53526ddd639aaed8ce90486b02ba621e02f6b505 (diff) | |
download | build-062fcfb96c56ecfb69b8c3162ced65b63e863752.tar.gz build-062fcfb96c56ecfb69b8c3162ced65b63e863752.tar.bz2 build-062fcfb96c56ecfb69b8c3162ced65b63e863752.tar.xz build-062fcfb96c56ecfb69b8c3162ced65b63e863752.zip |
Build will now only perform your extra code for using programs to generate more
dependancies per target, and only if none of the other target's dependancies
required a rebuild.
Diffstat (limited to '')
-rw-r--r-- | src/filetarget.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/filetarget.cpp b/src/filetarget.cpp index cd95188..ca9a39f 100644 --- a/src/filetarget.cpp +++ b/src/filetarget.cpp | |||
@@ -81,10 +81,10 @@ void FileTarget::check( Builder &bld ) | |||
81 | 81 | ||
82 | bld.processRequires( lOutput ); | 82 | bld.processRequires( lOutput ); |
83 | 83 | ||
84 | |||
85 | for( std::list<Perform *>::iterator i = perf.begin(); | 84 | for( std::list<Perform *>::iterator i = perf.begin(); |
86 | i != perf.end(); i++ ) | 85 | i != perf.end(); i++ ) |
87 | { | 86 | { |
87 | bool bExtraReqs = false; | ||
88 | time_t target = getTime( std::string((*i)->getTarget()) ); | 88 | time_t target = getTime( std::string((*i)->getTarget()) ); |
89 | std::list<std::string> *lReqs = bld.getRequires( (*i)->getTarget() ); | 89 | std::list<std::string> *lReqs = bld.getRequires( (*i)->getTarget() ); |
90 | if( lReqs == NULL ) | 90 | if( lReqs == NULL ) |
@@ -101,6 +101,16 @@ void FileTarget::check( Builder &bld ) | |||
101 | updateTime( (*i)->getTarget() ); | 101 | updateTime( (*i)->getTarget() ); |
102 | break; | 102 | break; |
103 | } | 103 | } |
104 | if( bExtraReqs == false ) | ||
105 | { | ||
106 | std::list<std::string>::iterator k = j; | ||
107 | k++; | ||
108 | if( k == lReqs->end() ) | ||
109 | { | ||
110 | bExtraReqs = true; | ||
111 | bld.genRequiresFor( (*i)->getTarget() ); | ||
112 | } | ||
113 | } | ||
104 | } | 114 | } |
105 | } | 115 | } |
106 | 116 | ||