summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authordt <qtc-committer@nokia.com>2010-01-12 13:13:22 +0100
committerdt <qtc-committer@nokia.com>2010-01-12 13:19:15 +0100
commit60c8686ed8fe0d02ad57d82ef27f00fd62ddc49b (patch)
tree14cad985da09ed3e3d8e77d703cfee2daa1d0db7 /src
parent8b3350286e3acd37da26019753b06e7fbe4fcd64 (diff)
downloadqt-creator-60c8686ed8fe0d02ad57d82ef27f00fd62ddc49b.tar.gz
Add the precompiled headers to the project info
QMake passes those headers directly to gcc, so the user doesn't need to include themselves.
Diffstat (limited to 'src')
-rw-r--r--src/plugins/cpptools/cppmodelmanagerinterface.h1
-rw-r--r--src/plugins/qt4projectmanager/qt4nodes.cpp5
-rw-r--r--src/plugins/qt4projectmanager/qt4nodes.h3
-rw-r--r--src/plugins/qt4projectmanager/qt4project.cpp17
-rw-r--r--src/plugins/qt4projectmanager/qt4project.h1
5 files changed, 22 insertions, 5 deletions
diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h
index 9b9e3dd3cd..18b991e941 100644
--- a/src/plugins/cpptools/cppmodelmanagerinterface.h
+++ b/src/plugins/cpptools/cppmodelmanagerinterface.h
@@ -76,6 +76,7 @@ public:
QStringList sourceFiles;
QStringList includePaths;
QStringList frameworkPaths;
+ QStringList precompiledHeaders;
};
class WorkingCopy
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 987e1ec58d..c613b57ce3 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -938,6 +938,11 @@ void Qt4ProFileNode::update()
newVarValues[UiDirVar] = uiDirPaths(reader);
newVarValues[MocDirVar] = mocDirPaths(reader);
newVarValues[PkgConfigVar] = reader->values(QLatin1String("PKGCONFIG"));
+ newVarValues[PrecompiledHeaderVar] =
+ reader->absoluteFileValues(QLatin1String("PRECOMPILED_HEADER"),
+ m_projectDir,
+ QStringList() << m_projectDir,
+ 0);
if (m_varValues != newVarValues) {
m_varValues = newVarValues;
diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h
index 7eb5249662..5c6a73f76b 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.h
+++ b/src/plugins/qt4projectmanager/qt4nodes.h
@@ -97,7 +97,8 @@ enum Qt4Variable {
IncludePathVar,
UiDirVar,
MocDirVar,
- PkgConfigVar
+ PkgConfigVar,
+ PrecompiledHeaderVar
};
class Qt4PriFileNode;
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index 7b929299c5..f22d63e676 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -507,6 +507,7 @@ void Qt4Project::updateCodeModel()
QByteArray definedMacros = predefinedMacros;
QStringList allIncludePaths = predefinedIncludePaths;
QStringList allFrameworkPaths = predefinedFrameworkPaths;
+ QStringList allPrecompileHeaders;
#ifdef Q_OS_MAC
const QString newQtLibsPath = versionInfo.value(QLatin1String("QT_INSTALL_LIBS"));
@@ -529,6 +530,10 @@ void Qt4Project::updateCodeModel()
info.includes = predefinedIncludePaths;
info.frameworkPaths = predefinedFrameworkPaths;
+ info.precompiledHeader = pro->variableValue(PrecompiledHeaderVar);
+
+ allPrecompileHeaders.append(info.precompiledHeader);
+
// Add custom defines
foreach (const QString def, pro->variableValue(DefinesVar)) {
definedMacros += "#define ";
@@ -623,10 +628,13 @@ void Qt4Project::updateCodeModel()
CppTools::CppModelManagerInterface::ProjectInfo pinfo = modelmanager->projectInfo(this);
- if (pinfo.defines == predefinedMacros &&
- pinfo.includePaths == allIncludePaths &&
- pinfo.frameworkPaths == allFrameworkPaths &&
- pinfo.sourceFiles == files) {
+ //qDebug()<<"Using precompiled header"<<allPrecompileHeaders;
+
+ if (pinfo.defines == predefinedMacros
+ && pinfo.includePaths == allIncludePaths
+ && pinfo.frameworkPaths == allFrameworkPaths
+ && pinfo.sourceFiles == files
+ && pinfo.precompiledHeaders == allPrecompileHeaders) {
// Nothing to update...
} else {
if (pinfo.defines != predefinedMacros ||
@@ -641,6 +649,7 @@ void Qt4Project::updateCodeModel()
pinfo.includePaths = allIncludePaths;
pinfo.frameworkPaths = allFrameworkPaths;
pinfo.sourceFiles = files;
+ pinfo.precompiledHeaders = allPrecompileHeaders;
modelmanager->updateProjectInfo(pinfo);
modelmanager->updateSourceFiles(pinfo.sourceFiles);
diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h
index 2588345722..9be7d5dd29 100644
--- a/src/plugins/qt4projectmanager/qt4project.h
+++ b/src/plugins/qt4projectmanager/qt4project.h
@@ -82,6 +82,7 @@ namespace Internal {
QByteArray defines;
QStringList includes;
QStringList frameworkPaths;
+ QStringList precompiledHeader;
};
}