X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcondition.cpp;h=5cce44462d3e984b9f61e85f2152e9c994a70d07;hb=8d636197d4adf5e882e51ffd2ff86d959dd82d6b;hp=c4c01b21fbdf692fc92cb4fe147a4ad58b969a86;hpb=654de39b62a9a58fd8e1b5a557361d628345788b;p=builder.git diff --git a/source/condition.cpp b/source/condition.cpp index c4c01b2..5cce444 100644 --- a/source/condition.cpp +++ b/source/condition.cpp @@ -6,6 +6,7 @@ Distributed under the LGPL */ #include +#include "builder.h" #include "condition.h" #include "sourcepackage.h" @@ -32,12 +33,6 @@ Condition::Condition(SourcePackage &p, const string &expr): } } -void Condition::resolve_refs() -{ - for(PkgRefList::iterator i=requires.begin(); i!=requires.end(); ++i) - i->resolve(); -} - bool Condition::eval() { const Config &conf=pkg.get_config(); @@ -50,7 +45,13 @@ bool Condition::eval() if(i->second[1]=='=') ++start; - if((conf.get_option(i->first).value==i->second.substr(start))==neg) + string value; + if(conf.is_option(i->first)) + value=conf.get_option(i->first).value; + else if(i->first=="arch") + value=pkg.get_builder().get_current_arch().get_name(); + + if((value==i->second.substr(start))==neg) result=false; } @@ -67,7 +68,7 @@ Condition::Loader::Loader(Condition &c): void Condition::Loader::require(const string &pkg) { - cond.requires.push_back(PackageRef(cond.pkg.get_builder(), pkg)); + cond.requires.push_back(pkg); } void Condition::Loader::build_info()