diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h index 9b9e3dd3cd553945193d8c219d3f2a431e09f8e4..18b991e9419911a19a2e37eb4fa0384058cecb18 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 987e1ec58d07ca01529df8697a65fccee09658b9..c613b57ce30a9e0c202658aeff15fa88e6b85838 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 7eb524966269a1a73489cdc6ff9c4736878cab90..5c6a73f76b8a0ee2c7a46c96f139b6e8112bf742 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 7b929299c594e460b60a27b48f0eb31d07c5395d..f22d63e6760388c9f0cc9bf43cbd137301efcb80 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 25883457223ebd08021341151f52f8c927932f70..9be7d5dd29a6b26b4894b55b54cdbb7dbbb55c94 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; }; }