aboutsummaryrefslogtreecommitdiff
path: root/src/builder.h
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2006-08-06 19:42:22 +0000
committerMike Buland <eichlan@xagasoft.com>2006-08-06 19:42:22 +0000
commit71c3c523aacb0f6986d50f4a7a2e5d604728a4c4 (patch)
tree9000ae982c9cb21d31ac3efa6ccf7100064f5bbb /src/builder.h
parent2c0c23b75f563d0a1e68f6079a8eea73c40a877a (diff)
downloadbuild-71c3c523aacb0f6986d50f4a7a2e5d604728a4c4.tar.gz
build-71c3c523aacb0f6986d50f4a7a2e5d604728a4c4.tar.bz2
build-71c3c523aacb0f6986d50f4a7a2e5d604728a4c4.tar.xz
build-71c3c523aacb0f6986d50f4a7a2e5d604728a4c4.zip
A load of updates, most of these made me realize that I probably could do this
whole thing a lot better. We'll see how that works out later, once I figure out how to do it better.
Diffstat (limited to 'src/builder.h')
-rw-r--r--src/builder.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/builder.h b/src/builder.h
index 56a7b07..195296a 100644
--- a/src/builder.h
+++ b/src/builder.h
@@ -51,9 +51,23 @@ public:
51 return rView; 51 return rView;
52 } 52 }
53 53
54 void startList( int tokType );
55 void setFilter( const char *sRegExp );
56 void augmentList( const char *sFrom );
57 void addListItem( const char *sItem );
58 void clearList();
59 void endList();
60
61 void addTarget( int tokType, const char *sName );
62 void setTargetInputType( int tokType );
63 void addTargetInput( const char *sInput );
64 void setTargetRule( const char *sRule );
65 void endTarget();
66
54 void setCache( const std::string &sFile ); 67 void setCache( const std::string &sFile );
55 void add( Action *pAct ); 68 void add( Action *pAct );
56 void add( Command *pCmd ); 69 void add( Command *pCmd );
70 void addRegexCommand( int nType, const char *sReg );
57 void add( Rule *pRule ); 71 void add( Rule *pRule );
58 void add( Target *pTarg ); 72 void add( Target *pTarg );
59 void varSet( const char *sName, const char *sValue ); 73 void varSet( const char *sName, const char *sValue );
@@ -64,6 +78,7 @@ public:
64 void requires( const char *sBase, const char *sReq ); 78 void requires( const char *sBase, const char *sReq );
65 void requiresFromCommand( const char *sBase, const char *sReq ); 79 void requiresFromCommand( const char *sBase, const char *sReq );
66 void genRequiresFor( const char *sName, time_t tNewTime ); 80 void genRequiresFor( const char *sName, time_t tNewTime );
81 std::list<std::string> findTargets( const char *sRegex );
67 void requiresRegexp( bool on ) 82 void requiresRegexp( bool on )
68 { 83 {
69 bReqRegexp = on; 84 bReqRegexp = on;
@@ -119,6 +134,7 @@ public:
119 134
120 typedef std::map<std::string, std::string> varmap; 135 typedef std::map<std::string, std::string> varmap;
121 varmap *regexVars( RegExp *re ); 136 varmap *regexVars( RegExp *re );
137 void regexVars( RegExp *re, varmap &map );
122 std::string varRepl( const char *sSrc, const char *cont, varmap *mExtra ); 138 std::string varRepl( const char *sSrc, const char *cont, varmap *mExtra );
123 139
124private: 140private:
@@ -159,6 +175,18 @@ private:
159 175
160 StaticString sCacheFile; 176 StaticString sCacheFile;
161 class Cache cRequires; 177 class Cache cRequires;
178
179 std::list<std::pair<std::string,std::map<std::string,std::string> > > lTok;
180 bool bTokFiltered;
181 int nTokType;
182 RegExp rTok;
183
184 int nTargetType;
185 int nTargetInputType;
186 std::string sTargetName;
187 std::list<std::string> lsTargetInput;
188 std::string sTargetRule;
189 bool bUsingList;
162}; 190};
163 191
164void cleanList( std::list<std::string> &lst ); 192void cleanList( std::list<std::string> &lst );