forked from qt-creator/qt-creator
Supply c++11 flags and per-project info to c++ code model.
A manual squash/merge of the changes below, plus a couple of subsequent
code fixes.
59085aa5fbb99e2d786cd2c1a06c24a111ccb49f:
Modify CppModel::ProjectInfo
Adding per project node information, to pass on the correct
defines/includes for each file, instead of aggregating them incorrectly.
Also split up SOURCES and OBJECTIVE_SOURCES.
Also ask the toolchain to convert the compilerflags to flags the
codemodel understands, for now only gcc and only c++11.
Also make the toolchain aware of the flags used to compile, so that it
can emit the correct defines.
Note: No header files are passed on.
74028802314cd4e75b41b46407433e07090a304d:
GCC: Evaluate cxxflags when checking for predefined macros
ebaaa4957e4c02cc9637a998eddae1d0acd74f83:
MSVC: Take cxxflags into account when checking for predefined macros
9bfce7e889bcf7bcc47bf880e3ea25945ca7d0d7:
Compile fixes
Change-Id: I9de94ad038dfc5dc1987732e84b13fb4419c96f5
Reviewed-by: Erik Verbruggen <erik.verbruggen@nokia.com>
This commit is contained in:
@@ -1410,6 +1410,27 @@ QStringList Qt4ProFileNode::symbianCapabilities() const
|
||||
return result;
|
||||
}
|
||||
|
||||
QByteArray Qt4ProFileNode::cxxDefines() const
|
||||
{
|
||||
QByteArray result;
|
||||
foreach (const QString &def, variableValue(DefinesVar)) {
|
||||
result += "#define ";
|
||||
const int index = def.indexOf(QLatin1Char('='));
|
||||
if (index == -1) {
|
||||
result += def.toLatin1();
|
||||
result += " 1\n";
|
||||
} else {
|
||||
const QString name = def.left(index);
|
||||
const QString value = def.mid(index + 1);
|
||||
result += name.toLatin1();
|
||||
result += ' ';
|
||||
result += value.toLocal8Bit();
|
||||
result += '\n';
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
bool Qt4ProFileNode::isDeployable() const
|
||||
{
|
||||
return m_isDeployable;
|
||||
@@ -1829,6 +1850,15 @@ void Qt4ProFileNode::applyEvaluate(EvalResult evalResult, bool async)
|
||||
|
||||
newVarValues[DefinesVar] = m_readerExact->values(QLatin1String("DEFINES"));
|
||||
newVarValues[IncludePathVar] = includePaths(m_readerExact);
|
||||
newVarValues[CppFlagsVar] = m_readerExact->values("QMAKE_CXXFLAGS");
|
||||
newVarValues[CppSourceVar] = m_readerExact->absoluteFileValues(QLatin1String("SOURCES"),
|
||||
m_projectDir,
|
||||
QStringList() << m_projectDir,
|
||||
0);
|
||||
newVarValues[ObjCSourceVar] = m_readerExact->absoluteFileValues(QLatin1String("OBJECTIVE_SOURCES"),
|
||||
m_projectDir,
|
||||
QStringList() << m_projectDir,
|
||||
0);
|
||||
newVarValues[UiDirVar] = QStringList() << uiDirPath(m_readerExact);
|
||||
newVarValues[MocDirVar] = QStringList() << mocDirPath(m_readerExact);
|
||||
newVarValues[PkgConfigVar] = m_readerExact->values(QLatin1String("PKGCONFIG"));
|
||||
|
||||
Reference in New Issue
Block a user