forked from qt-creator/qt-creator
put core implementation of $$shadowed() into QMakeGlobals
to make it available to a wider audience Change-Id: I7a706f8d31de97d8214ba5ea745e19d1dbfda1bc Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
@@ -945,17 +945,9 @@ ProStringList QMakeEvaluator::evaluateBuiltinExpand(
|
||||
if (args.count() != 1) {
|
||||
evalError(fL1S("shadowed(path) requires one argument."));
|
||||
} else {
|
||||
QString val = resolvePath(args.at(0).toQString(m_tmp1));
|
||||
QString rstr;
|
||||
if (m_option->source_root.isEmpty()) {
|
||||
rstr = val;
|
||||
} else if (val.startsWith(m_option->source_root)
|
||||
&& (val.length() == m_option->source_root.length()
|
||||
|| val.at(m_option->source_root.length()) == QLatin1Char('/'))) {
|
||||
rstr = m_option->build_root + val.mid(m_option->source_root.length());
|
||||
} else {
|
||||
QString rstr = m_option->shadowedPath(resolvePath(args.at(0).toQString(m_tmp1)));
|
||||
if (rstr.isEmpty())
|
||||
break;
|
||||
}
|
||||
ret << (rstr.isSharedWith(m_tmp1) ? args.at(0) : ProString(rstr).setSource(args.at(0)));
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -248,6 +248,18 @@ void QMakeGlobals::setDirectories(const QString &input_dir, const QString &outpu
|
||||
}
|
||||
}
|
||||
|
||||
QString QMakeGlobals::shadowedPath(const QString &fileName) const
|
||||
{
|
||||
if (source_root.isEmpty())
|
||||
return fileName;
|
||||
if (fileName.startsWith(source_root)
|
||||
&& (fileName.length() == source_root.length()
|
||||
|| fileName.at(source_root.length()) == QLatin1Char('/'))) {
|
||||
return build_root + fileName.mid(source_root.length());
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString QMakeGlobals::getEnv(const QString &var) const
|
||||
{
|
||||
#ifdef PROEVALUATOR_SETENV
|
||||
|
||||
@@ -133,6 +133,7 @@ public:
|
||||
#endif
|
||||
|
||||
QString expandEnvVars(const QString &str) const;
|
||||
QString shadowedPath(const QString &fileName) const;
|
||||
|
||||
private:
|
||||
QString getEnv(const QString &) const;
|
||||
|
||||
Reference in New Issue
Block a user