+ bool negate = (pattern[0]=='!');
+ vector<string> parts = split(pattern.substr(negate), "-");
+ resolve_aliases(parts);
+ for(vector<string>::const_iterator i=parts.begin(); i!=parts.end(); ++i)
+ {
+ if((*i=="32" && bits==32) || (*i=="64" && bits==64))
+ ;
+ else if(*i!=type && *i!=cpu && *i!=system)
+ return negate;
+ }
+ return !negate;