- qmake
* Projects which explicitly set an empty TARGET are considered broken now.
- * several functions and built-in variables were modified to return normalized paths.
+ * The makespec and .qmake.cache do not see build pass specific variables any more.
+ * Several functions and built-in variables were modified to return normalized paths.
- QTextCodecPlugin has been removed since it is no longer used. All text codecs
are now built into QtCore.
basecfgs = project->values(build + ".CONFIG");
basecfgs += build;
basecfgs += "build_pass";
- basevars["CONFIG"] = basecfgs;
basevars["BUILD_PASS"] = QStringList(build);
QStringList buildname = project->values(build + ".name");
basevars["BUILD_NAME"] = (buildname.isEmpty() ? QStringList(build) : buildname);
//create project
- QMakeProject *build_proj = new QMakeProject(project->properties(), basevars);
+ QMakeProject *build_proj = new QMakeProject(project->properties());
+ build_proj->setExtraVars(basevars);
build_proj->setExtraConfigs(basecfgs);
build_proj->read(project->projectFile());
vars = base_vars; // start with the base
+ for (QHash<QString, QStringList>::ConstIterator it = extra_vars.constBegin();
+ it != extra_vars.constEnd(); ++it)
+ vars.insert(it.key(), it.value());
+
if(cmd & ReadFeatures) {
debug_msg(1, "Processing default_pre: %s", vars["CONFIG"].join("::").toLatin1().constData());
doProjectInclude("default_pre", IncludeFlagFeature, vars);
QMakeProperty *prop;
void reset();
QStringList extra_configs;
- QHash<QString, QStringList> vars, base_vars;
+ QHash<QString, QStringList> vars, base_vars, extra_vars;
bool parse(const QString &text, QHash<QString, QStringList> &place, int line_count=1);
enum IncludeStatus {
QMakeProject(QMakeProperty *p, const QHash<QString, QStringList> &nvars) { init(p, &nvars); }
~QMakeProject();
+ void setExtraVars(const QHash<QString, QStringList> &_vars) { extra_vars = _vars; }
void setExtraConfigs(const QStringList &_cfgs) { extra_configs = _cfgs; }
enum { ReadProFile=0x01, ReadSetup=0x02, ReadFeatures=0x04, ReadAll=0xFF };