forked from qt-creator/qt-creator
make $$PWD non-magic on read
follow suit with qmake ... Change-Id: I9354713232facc57bd2969d62f44890e274a70b8 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
@@ -95,12 +95,6 @@ void QMakeEvaluator::initStatics()
|
|||||||
|
|
||||||
initFunctionStatics();
|
initFunctionStatics();
|
||||||
|
|
||||||
static const char * const names[] = {
|
|
||||||
"PWD"
|
|
||||||
};
|
|
||||||
for (unsigned i = 0; i < sizeof(names)/sizeof(names[0]); ++i)
|
|
||||||
statics.varList.insert(ProString(names[i]), i);
|
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
const char * const oldname, * const newname;
|
const char * const oldname, * const newname;
|
||||||
} mapInits[] = {
|
} mapInits[] = {
|
||||||
@@ -1070,6 +1064,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile(
|
|||||||
|
|
||||||
m_handler->aboutToEval(currentProFile(), pro, type);
|
m_handler->aboutToEval(currentProFile(), pro, type);
|
||||||
m_profileStack.push(pro);
|
m_profileStack.push(pro);
|
||||||
|
valuesRef(ProString("PWD")) = ProStringList(ProString(currentDirectory(), NoHash));
|
||||||
if (flags & LoadPreFiles) {
|
if (flags & LoadPreFiles) {
|
||||||
setupProject();
|
setupProject();
|
||||||
|
|
||||||
@@ -1105,6 +1100,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProFile(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_profileStack.pop();
|
m_profileStack.pop();
|
||||||
|
valuesRef(ProString("PWD")) = ProStringList(ProString(currentDirectory(), NoHash));
|
||||||
m_handler->doneWithEval(currentProFile());
|
m_handler->doneWithEval(currentProFile());
|
||||||
|
|
||||||
return ReturnTrue;
|
return ReturnTrue;
|
||||||
@@ -1212,8 +1208,10 @@ QString QMakeEvaluator::currentFileName() const
|
|||||||
|
|
||||||
QString QMakeEvaluator::currentDirectory() const
|
QString QMakeEvaluator::currentDirectory() const
|
||||||
{
|
{
|
||||||
ProFile *cur = m_profileStack.top();
|
ProFile *pro = currentProFile();
|
||||||
return cur->directoryName();
|
if (pro)
|
||||||
|
return pro->directoryName();
|
||||||
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// The (QChar*)current->constData() constructs below avoid pointless detach() calls
|
// The (QChar*)current->constData() constructs below avoid pointless detach() calls
|
||||||
@@ -1736,18 +1734,6 @@ ProStringList QMakeEvaluator::valuesDirect(const ProString &variableName) const
|
|||||||
|
|
||||||
ProStringList QMakeEvaluator::values(const ProString &variableName) const
|
ProStringList QMakeEvaluator::values(const ProString &variableName) const
|
||||||
{
|
{
|
||||||
QHash<ProString, int>::ConstIterator vli = statics.varList.find(variableName);
|
|
||||||
if (vli != statics.varList.constEnd()) {
|
|
||||||
int vlidx = *vli;
|
|
||||||
QString ret;
|
|
||||||
switch ((VarName)vlidx) {
|
|
||||||
case V_PWD: // containing directory of most nested project/include file
|
|
||||||
ret = currentDirectory();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return ProStringList(ProString(ret, NoHash));
|
|
||||||
}
|
|
||||||
|
|
||||||
ProStringList result = valuesDirect(variableName);
|
ProStringList result = valuesDirect(variableName);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -208,10 +208,6 @@ public:
|
|||||||
QMakeGlobals *m_option;
|
QMakeGlobals *m_option;
|
||||||
QMakeParser *m_parser;
|
QMakeParser *m_parser;
|
||||||
QMakeHandler *m_handler;
|
QMakeHandler *m_handler;
|
||||||
|
|
||||||
enum VarName {
|
|
||||||
V_PWD
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Q_DECLARE_OPERATORS_FOR_FLAGS(QMakeEvaluator::LoadFlags)
|
Q_DECLARE_OPERATORS_FOR_FLAGS(QMakeEvaluator::LoadFlags)
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ struct QMakeStatics {
|
|||||||
ProString strTEMPLATE;
|
ProString strTEMPLATE;
|
||||||
QHash<ProString, int> expands;
|
QHash<ProString, int> expands;
|
||||||
QHash<ProString, int> functions;
|
QHash<ProString, int> functions;
|
||||||
QHash<ProString, int> varList;
|
|
||||||
QHash<ProString, ProString> varMap;
|
QHash<ProString, ProString> varMap;
|
||||||
ProStringList fakeValue;
|
ProStringList fakeValue;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user