forked from qt-creator/qt-creator
AutoTools: Handle (abs_)?top_srcdir, and (abs_)?top_builddir
in include paths taken from the Autotools project. These are widely used in include paths. Change-Id: I78d5e1f6ce6cd7bfe92bb670b73e276cb558b9eb Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
@@ -402,6 +402,24 @@ QList<Node *> AutotoolsProject::nodes(FolderNode *parent) const
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static QStringList filterIncludes(const QString &absSrc, const QString &absBuild,
|
||||||
|
const QStringList &in)
|
||||||
|
{
|
||||||
|
QStringList result;
|
||||||
|
foreach (const QString i, in) {
|
||||||
|
QString out = i;
|
||||||
|
out.replace(QLatin1String("$(top_srcdir)"), absSrc);
|
||||||
|
out.replace(QLatin1String("$(abs_top_srcdir)"), absSrc);
|
||||||
|
|
||||||
|
out.replace(QLatin1String("$(top_builddir)"), absBuild);
|
||||||
|
out.replace(QLatin1String("$(abs_top_builddir)"), absBuild);
|
||||||
|
|
||||||
|
result << out;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void AutotoolsProject::updateCppCodeModel()
|
void AutotoolsProject::updateCppCodeModel()
|
||||||
{
|
{
|
||||||
CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
||||||
@@ -427,7 +445,12 @@ void AutotoolsProject::updateCppCodeModel()
|
|||||||
ppBuilder.setCFlags(cflags);
|
ppBuilder.setCFlags(cflags);
|
||||||
ppBuilder.setCxxFlags(cxxflags);
|
ppBuilder.setCxxFlags(cxxflags);
|
||||||
|
|
||||||
ppBuilder.setIncludePaths(m_makefileParserThread->includePaths());
|
const QString absSrc = projectDirectory().toString();
|
||||||
|
const Target *target = activeTarget();
|
||||||
|
const QString absBuild = (target && target->activeBuildConfiguration())
|
||||||
|
? target->activeBuildConfiguration()->buildDirectory().toString() : QString();
|
||||||
|
|
||||||
|
ppBuilder.setIncludePaths(filterIncludes(absSrc, absBuild, m_makefileParserThread->includePaths()));
|
||||||
ppBuilder.setDefines(m_makefileParserThread->defines());
|
ppBuilder.setDefines(m_makefileParserThread->defines());
|
||||||
|
|
||||||
const QList<Core::Id> languages = ppBuilder.createProjectPartsForFiles(m_files);
|
const QList<Core::Id> languages = ppBuilder.createProjectPartsForFiles(m_files);
|
||||||
|
|||||||
Reference in New Issue
Block a user