diff options
| author | Mike Buland <eichlan@xagasoft.com> | 2006-07-31 17:23:04 +0000 |
|---|---|---|
| committer | Mike Buland <eichlan@xagasoft.com> | 2006-07-31 17:23:04 +0000 |
| commit | b672fa69c4c98509f8ee251b87300e3fcbe6bdc8 (patch) | |
| tree | 064212cec710fc5bfd5f2b75dd2a502ba9f66eba /src/rule.cpp | |
| parent | 9139f1df4cda80b91ab68e5de27e85eaa4c54682 (diff) | |
| download | build-b672fa69c4c98509f8ee251b87300e3fcbe6bdc8.tar.gz build-b672fa69c4c98509f8ee251b87300e3fcbe6bdc8.tar.bz2 build-b672fa69c4c98509f8ee251b87300e3fcbe6bdc8.tar.xz build-b672fa69c4c98509f8ee251b87300e3fcbe6bdc8.zip | |
We're almost to rule/command generation, then only a couple of steps before it
will do it all!
Diffstat (limited to '')
| -rw-r--r-- | src/rule.cpp | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/src/rule.cpp b/src/rule.cpp index a7ebf9b..a240855 100644 --- a/src/rule.cpp +++ b/src/rule.cpp | |||
| @@ -2,8 +2,7 @@ | |||
| 2 | #include "builder.h" // for BuildException | 2 | #include "builder.h" // for BuildException |
| 3 | 3 | ||
| 4 | Rule::Rule( const char *sName ) : | 4 | Rule::Rule( const char *sName ) : |
| 5 | sName( sName ), | 5 | sName( sName ) |
| 6 | sProduces("{target}") | ||
| 7 | { | 6 | { |
| 8 | } | 7 | } |
| 9 | 8 | ||
| @@ -14,11 +13,23 @@ Rule::~Rule() | |||
| 14 | 13 | ||
| 15 | void Rule::debug() | 14 | void Rule::debug() |
| 16 | { | 15 | { |
| 17 | printf(" Rule %s produces %s:\n", | 16 | printf(" Rule %s:\n", |
| 18 | sName.getString(), | 17 | sName.getString() |
| 19 | sProduces.getString() | ||
| 20 | ); | 18 | ); |
| 21 | printf(" Matches "); | 19 | printf(" Produces: "); |
| 20 | if( lProduces.empty() ) | ||
| 21 | printf("{target}"); | ||
| 22 | else | ||
| 23 | { | ||
| 24 | for( std::list<std::string>::iterator i = lProduces.begin(); | ||
| 25 | i != lProduces.end(); i++ ) | ||
| 26 | { | ||
| 27 | if( i != lProduces.begin() ) | ||
| 28 | printf(", "); | ||
| 29 | printf("%s", (*i).c_str() ); | ||
| 30 | } | ||
| 31 | } | ||
| 32 | printf("\n Matches "); | ||
| 22 | if( mHow == matchOne ) | 33 | if( mHow == matchOne ) |
| 23 | printf("one "); | 34 | printf("one "); |
| 24 | else if( mHow == matchAll ) | 35 | else if( mHow == matchAll ) |
| @@ -31,9 +42,9 @@ void Rule::debug() | |||
| 31 | printf("\"%s\"\n", sPerfCmd.getString() ); | 42 | printf("\"%s\"\n", sPerfCmd.getString() ); |
| 32 | } | 43 | } |
| 33 | 44 | ||
| 34 | void Rule::setProduces( const char *sP ) | 45 | void Rule::addProduces( const char *sP ) |
| 35 | { | 46 | { |
| 36 | sProduces = sP; | 47 | lProduces.push_back( sP ); |
| 37 | } | 48 | } |
| 38 | 49 | ||
| 39 | void Rule::setMatches( Matches how, const char *sW ) | 50 | void Rule::setMatches( Matches how, const char *sW ) |
| @@ -59,3 +70,13 @@ void Rule::setPerforms( Perform pwhat, const char *sperfcmd ) | |||
| 59 | sPerfCmd = sperfcmd; | 70 | sPerfCmd = sperfcmd; |
| 60 | } | 71 | } |
| 61 | 72 | ||
| 73 | std::list<std::string> Rule::execute( Builder &bld, std::list<std::string> lInput ) | ||
| 74 | { | ||
| 75 | std::list<Rule *> lRule = bld.findRuleChain( this ); | ||
| 76 | |||
| 77 | std::list<std::string> ret; | ||
| 78 | |||
| 79 | return ret; | ||
| 80 | |||
| 81 | } | ||
| 82 | |||
