bool ProjectGenerator::addFile(QString file) { file = fileFixify(file, qmake_getpwd()); QString dir; int s = file.lastIndexOf(Option::dir_sep); if(s != -1) dir = file.left(s+1); if(file.mid(dir.length(), Option::h_moc_mod.length()) == Option::h_moc_mod) return false; ProKey where; for(int cppit = 0; cppit < Option::cpp_ext.size(); ++cppit) { if(file.endsWith(Option::cpp_ext[cppit])) { where = "SOURCES"; break; } } if(where.isEmpty()) { for(int hit = 0; hit < Option::h_ext.size(); ++hit) if(file.endsWith(Option::h_ext.at(hit))) { where = "HEADERS"; break; } } if(where.isEmpty()) { for(int cit = 0; cit < Option::c_ext.size(); ++cit) { if(file.endsWith(Option::c_ext[cit])) { where = "SOURCES"; break; } } } if(where.isEmpty()) { if(file.endsWith(Option::ui_ext)) where = "FORMS"; else if(file.endsWith(Option::lex_ext)) where = "LEXSOURCES"; else if(file.endsWith(Option::yacc_ext)) where = "YACCSOURCES"; else if(file.endsWith(".ts") || file.endsWith(".xlf")) where = "TRANSLATIONS"; else if(file.endsWith(".qrc")) where = "RESOURCES"; } QString newfile = fixPathToQmake(fileFixify(file)); ProStringList &endList = project->values(where); if(!endList.contains(newfile, Qt::CaseInsensitive)) { endList += newfile; return true; } return false; }
ProString QMakeProperty::value(const ProKey &vk) { ProString val = m_values.value(vk); if (!val.isNull()) return val; initSettings(); return settings->value(vk.toQString()).toString(); }
bool QMakeProject::test(const ProKey &func, const QList<ProStringList> &args) { m_current.clear(); if (int func_t = statics.functions.value(func)) return boolRet(evaluateBuiltinConditional(func_t, func, prepareBuiltinArgs(args))); QHash<ProKey, ProFunctionDef>::ConstIterator it = m_functionDefs.testFunctions.constFind(func); if (it != m_functionDefs.testFunctions.constEnd()) return boolRet(evaluateBoolFunction(*it, args, func)); evalError(QStringLiteral("'%1' is not a recognized test function.") .arg(func.toQString(m_tmp1))); return false; }
QStringList QMakeProject::expand(const ProKey &func, const QList<ProStringList> &args) { m_current.clear(); if (int func_t = statics.expands.value(func)) return evaluateBuiltinExpand(func_t, func, prepareBuiltinArgs(args)).toQStringList(); QHash<ProKey, ProFunctionDef>::ConstIterator it = m_functionDefs.replaceFunctions.constFind(func); if (it != m_functionDefs.replaceFunctions.constEnd()) { QMakeProject::VisitReturn vr; ProStringList ret = evaluateFunction(*it, args, &vr); if (vr == QMakeProject::ReturnError) exit(3); return ret.toQStringList(); } evalError(QStringLiteral("'%1' is not a recognized replace function.") .arg(func.toQString(m_tmp1))); return QStringList(); }