diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/buildparser.cpp | 74 | ||||
| -rw-r--r-- | src/buildparser.h | 4 | ||||
| -rw-r--r-- | src/functiondirectoriesin.cpp | 2 |
3 files changed, 52 insertions, 28 deletions
diff --git a/src/buildparser.cpp b/src/buildparser.cpp index 04147d8..b8de35e 100644 --- a/src/buildparser.cpp +++ b/src/buildparser.cpp | |||
| @@ -62,17 +62,17 @@ void BuildParser::setTargetType( const char *sType ) | |||
| 62 | 62 | ||
| 63 | void BuildParser::addTargetInput() | 63 | void BuildParser::addTargetInput() |
| 64 | { | 64 | { |
| 65 | lTargetTmp.back().second.lInput.insert( | 65 | lTargetTmp.back().second.lInput.first.insert( |
| 66 | lTargetTmp.back().second.lInput.end(), | 66 | lTargetTmp.back().second.lInput.first.end(), |
| 67 | lTmp.begin(), lTmp.end() | 67 | lTmp.first.begin(), lTmp.first.end() |
| 68 | ); | 68 | ); |
| 69 | } | 69 | } |
| 70 | 70 | ||
| 71 | void BuildParser::addTargetRequires() | 71 | void BuildParser::addTargetRequires() |
| 72 | { | 72 | { |
| 73 | lTargetTmp.back().second.lRequires.insert( | 73 | lTargetTmp.back().second.lRequires.first.insert( |
| 74 | lTargetTmp.back().second.lRequires.end(), | 74 | lTargetTmp.back().second.lRequires.first.end(), |
| 75 | lTmp.begin(), lTmp.end() | 75 | lTmp.first.begin(), lTmp.first.end() |
| 76 | ); | 76 | ); |
| 77 | } | 77 | } |
| 78 | 78 | ||
| @@ -104,28 +104,46 @@ void BuildParser::addFunctionParam( const char *sParam ) | |||
| 104 | // | 104 | // |
| 105 | void BuildParser::newList() | 105 | void BuildParser::newList() |
| 106 | { | 106 | { |
| 107 | lTmp.clear(); | 107 | lTmp.first.clear(); |
| 108 | lTmp.second = NULL; | ||
| 108 | } | 109 | } |
| 109 | 110 | ||
| 110 | void BuildParser::addListString( const char *str ) | 111 | void BuildParser::addListString( const char *str ) |
| 111 | { | 112 | { |
| 112 | lTmp.push_back( BuildListItem(str, NULL) ); | 113 | lTmp.first.push_back( BuildListItem(str, NULL) ); |
| 113 | } | 114 | } |
| 114 | 115 | ||
| 115 | void BuildParser::addListFunc() | 116 | void BuildParser::addListFunc() |
| 116 | { | 117 | { |
| 117 | lTmp.push_back( BuildListItem("", pTmpFunc ) ); | 118 | lTmp.first.push_back( BuildListItem("", pTmpFunc ) ); |
| 118 | } | 119 | } |
| 119 | 120 | ||
| 120 | void BuildParser::filterList() | 121 | void BuildParser::filterList() |
| 121 | { | 122 | { |
| 123 | lTmp.second = pTmpFunc; | ||
| 124 | //StringList lTmp2; | ||
| 125 | //StringList lIn = buildToStringList( lTmp, StringList() ); | ||
| 126 | //pTmpFunc->execute( NULL, lIn, lTmp2 ); | ||
| 127 | //lTmp.clear(); | ||
| 128 | //for( StringList::iterator i = lTmp2.begin(); i != lTmp2.end(); i++ ) | ||
| 129 | //{ | ||
| 130 | // lTmp.push_back( BuildListItem( *i, NULL ) ); | ||
| 131 | //} | ||
| 132 | } | ||
| 133 | |||
| 134 | void BuildParser::buildListFilter( BuildList &lSrc ) | ||
| 135 | { | ||
| 136 | if( lSrc.second == NULL ) | ||
| 137 | return; | ||
| 138 | |||
| 122 | StringList lTmp2; | 139 | StringList lTmp2; |
| 123 | StringList lIn = buildToStringList( lTmp, StringList() ); | 140 | StringList lIn = buildToStringList( lSrc, StringList() ); |
| 124 | pTmpFunc->execute( NULL, lIn, lTmp2 ); | 141 | pTmpFunc->execute( NULL, lIn, lTmp2 ); |
| 125 | lTmp.clear(); | 142 | lSrc.first.clear(); |
| 143 | delete lSrc.second; | ||
| 126 | for( StringList::iterator i = lTmp2.begin(); i != lTmp2.end(); i++ ) | 144 | for( StringList::iterator i = lTmp2.begin(); i != lTmp2.end(); i++ ) |
| 127 | { | 145 | { |
| 128 | lTmp.push_back( BuildListItem( *i, NULL ) ); | 146 | lSrc.first.push_back( BuildListItem( *i, NULL ) ); |
| 129 | } | 147 | } |
| 130 | } | 148 | } |
| 131 | 149 | ||
| @@ -133,7 +151,8 @@ StringList BuildParser::buildToStringList( const BuildList &lSrc, const StringLi | |||
| 133 | { | 151 | { |
| 134 | StringList lOut; | 152 | StringList lOut; |
| 135 | 153 | ||
| 136 | for( BuildList::const_iterator i = lSrc.begin(); i != lSrc.end(); i++ ) | 154 | for( BuildListCore::const_iterator i = lSrc.first.begin(); |
| 155 | i != lSrc.first.end(); i++ ) | ||
| 137 | { | 156 | { |
| 138 | if( (*i).second ) | 157 | if( (*i).second ) |
| 139 | { | 158 | { |
| @@ -152,7 +171,8 @@ StringList BuildParser::buildToStringListDup( const BuildList &lSrc, const Strin | |||
| 152 | { | 171 | { |
| 153 | StringList lOut; | 172 | StringList lOut; |
| 154 | 173 | ||
| 155 | for( BuildList::const_iterator i = lSrc.begin(); i != lSrc.end(); i++ ) | 174 | for( BuildListCore::const_iterator i = lSrc.first.begin(); |
| 175 | i != lSrc.first.end(); i++ ) | ||
| 156 | { | 176 | { |
| 157 | if( (*i).second ) | 177 | if( (*i).second ) |
| 158 | { | 178 | { |
| @@ -186,17 +206,17 @@ void BuildParser::addRuleMatches() | |||
| 186 | 206 | ||
| 187 | void BuildParser::addRuleProduces() | 207 | void BuildParser::addRuleProduces() |
| 188 | { | 208 | { |
| 189 | lRuleTmp.back().lProduces.insert( | 209 | lRuleTmp.back().lProduces.first.insert( |
| 190 | lRuleTmp.back().lProduces.end(), | 210 | lRuleTmp.back().lProduces.first.end(), |
| 191 | lTmp.begin(), lTmp.end() | 211 | lTmp.first.begin(), lTmp.first.end() |
| 192 | ); | 212 | ); |
| 193 | } | 213 | } |
| 194 | 214 | ||
| 195 | void BuildParser::addRuleRequires() | 215 | void BuildParser::addRuleRequires() |
| 196 | { | 216 | { |
| 197 | lRuleTmp.back().lRequires.insert( | 217 | lRuleTmp.back().lRequires.first.insert( |
| 198 | lRuleTmp.back().lRequires.end(), | 218 | lRuleTmp.back().lRequires.first.end(), |
| 199 | lTmp.begin(), lTmp.end() | 219 | lTmp.first.begin(), lTmp.first.end() |
| 200 | ); | 220 | ); |
| 201 | } | 221 | } |
| 202 | 222 | ||
| @@ -346,10 +366,10 @@ void BuildParser::debugDump() | |||
| 346 | void BuildParser::printBuildList( const BuildList &lst ) | 366 | void BuildParser::printBuildList( const BuildList &lst ) |
| 347 | { | 367 | { |
| 348 | printf("["); | 368 | printf("["); |
| 349 | for( BuildList::const_iterator k = lst.begin(); | 369 | for( BuildListCore::const_iterator k = lst.first.begin(); |
| 350 | k != lst.end(); k++ ) | 370 | k != lst.first.end(); k++ ) |
| 351 | { | 371 | { |
| 352 | if( k != lst.begin() ) | 372 | if( k != lst.first.begin() ) |
| 353 | { | 373 | { |
| 354 | printf(", "); | 374 | printf(", "); |
| 355 | } | 375 | } |
| @@ -462,8 +482,8 @@ Build *BuildParser::genBuild() | |||
| 462 | pRule->getPerformList().push_back( *j ); | 482 | pRule->getPerformList().push_back( *j ); |
| 463 | } | 483 | } |
| 464 | 484 | ||
| 465 | for( BuildList::iterator j = (*i).lProduces.begin(); | 485 | for( BuildListCore::iterator j = (*i).lProduces.first.begin(); |
| 466 | j != (*i).lProduces.end(); j++ ) | 486 | j != (*i).lProduces.first.end(); j++ ) |
| 467 | { | 487 | { |
| 468 | if( (*j).second ) | 488 | if( (*j).second ) |
| 469 | { | 489 | { |
| @@ -479,8 +499,8 @@ Build *BuildParser::genBuild() | |||
| 479 | pRule->setAggregate( (*i).pAggregate ); | 499 | pRule->setAggregate( (*i).pAggregate ); |
| 480 | } | 500 | } |
| 481 | 501 | ||
| 482 | for( BuildList::iterator j = (*i).lRequires.begin(); | 502 | for( BuildListCore::iterator j = (*i).lRequires.first.begin(); |
| 483 | j != (*i).lRequires.end(); j++ ) | 503 | j != (*i).lRequires.first.end(); j++ ) |
| 484 | { | 504 | { |
| 485 | if( (*j).second ) | 505 | if( (*j).second ) |
| 486 | { | 506 | { |
diff --git a/src/buildparser.h b/src/buildparser.h index 3c79a5b..13c523c 100644 --- a/src/buildparser.h +++ b/src/buildparser.h | |||
| @@ -52,7 +52,8 @@ enum eSetHow | |||
| 52 | class BuildParser : public Parser | 52 | class BuildParser : public Parser |
| 53 | { | 53 | { |
| 54 | typedef std::pair<std::string, Function *> BuildListItem; | 54 | typedef std::pair<std::string, Function *> BuildListItem; |
| 55 | typedef std::list<BuildListItem> BuildList; | 55 | typedef std::list<BuildListItem> BuildListCore; |
| 56 | typedef std::pair<BuildListCore, Function *> BuildList; | ||
| 56 | typedef Triplet<std::string, std::string, int> SetVar; | 57 | typedef Triplet<std::string, std::string, int> SetVar; |
| 57 | typedef std::list<SetVar> SetVarList; | 58 | typedef std::list<SetVar> SetVarList; |
| 58 | public: | 59 | public: |
| @@ -117,6 +118,7 @@ public: // List functions | |||
| 117 | void addListFunc(); | 118 | void addListFunc(); |
| 118 | void filterList(); | 119 | void filterList(); |
| 119 | 120 | ||
| 121 | void buildListFilter( BuildList &lSrc ); | ||
| 120 | StringList buildToStringList( const BuildList &lSrc, const StringList &lIn, Build *pPass=NULL ); | 122 | StringList buildToStringList( const BuildList &lSrc, const StringList &lIn, Build *pPass=NULL ); |
| 121 | StringList buildToStringListDup( const BuildList &lSrc, const StringList &lIn, Build &bld, const std::string &sCont, VarMap *mExtra, Build *pPass=NULL ); | 123 | StringList buildToStringListDup( const BuildList &lSrc, const StringList &lIn, Build &bld, const std::string &sCont, VarMap *mExtra, Build *pPass=NULL ); |
| 122 | 124 | ||
diff --git a/src/functiondirectoriesin.cpp b/src/functiondirectoriesin.cpp index 105e98d..cafea81 100644 --- a/src/functiondirectoriesin.cpp +++ b/src/functiondirectoriesin.cpp | |||
| @@ -30,6 +30,8 @@ void FunctionDirectoriesIn::execute( Build *bld, const StringList &lInput, Strin | |||
| 30 | { | 30 | { |
| 31 | if( e->d_type == DT_DIR ) | 31 | if( e->d_type == DT_DIR ) |
| 32 | { | 32 | { |
| 33 | if( e->d_name[0] == '.' || e->d_name[0] == '\0' ) | ||
| 34 | continue; | ||
| 33 | lOutput.push_back( e->d_name ); | 35 | lOutput.push_back( e->d_name ); |
| 34 | } | 36 | } |
| 35 | } | 37 | } |
