forked from qt-creator/qt-creator
Make the project managers tell the code model about include paths
... from the environment. Fixes: QTCREATORBUG-17985 Change-Id: I9b54e550121cfcc0684a6e173337d59d235c6107 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
@@ -533,6 +533,8 @@ void QbsProject::handleQbsParsingDone(bool success)
|
||||
m_qbsProject = m_qbsProjectParser->qbsProject();
|
||||
m_qbsProjects.insert(activeTarget(), m_qbsProject);
|
||||
bool dataChanged = false;
|
||||
bool envChanged = m_lastParseEnv != m_qbsProjectParser->environment();
|
||||
m_lastParseEnv = m_qbsProjectParser->environment();
|
||||
if (success) {
|
||||
QTC_ASSERT(m_qbsProject.isValid(), return);
|
||||
const qbs::ProjectData &projectData = m_qbsProject.projectData();
|
||||
@@ -552,6 +554,8 @@ void QbsProject::handleQbsParsingDone(bool success)
|
||||
|
||||
if (dataChanged)
|
||||
updateAfterParse();
|
||||
else if (envChanged)
|
||||
updateCppCodeModel();
|
||||
emitParsingFinished(success);
|
||||
}
|
||||
|
||||
@@ -1085,7 +1089,7 @@ void QbsProject::updateCppCodeModel()
|
||||
}
|
||||
|
||||
CppTools::GeneratedCodeModelSupport::update(m_extraCompilers);
|
||||
m_cppCodeModelUpdater->update({this, kitInfo, rpps});
|
||||
m_cppCodeModelUpdater->update({this, kitInfo, activeBuildEnvironment(), rpps});
|
||||
}
|
||||
|
||||
void QbsProject::updateQmlJsCodeModel()
|
||||
|
||||
@@ -144,6 +144,7 @@ private:
|
||||
QHash<ProjectExplorer::Target *, qbs::Project> m_qbsProjects;
|
||||
qbs::Project m_qbsProject; // for activeTarget()
|
||||
qbs::ProjectData m_projectData; // Cached m_qbsProject.projectData()
|
||||
Utils::Environment m_lastParseEnv;
|
||||
QSet<Core::IDocument *> m_qbsDocuments;
|
||||
|
||||
QbsProjectParser *m_qbsProjectParser = nullptr;
|
||||
|
||||
@@ -82,6 +82,7 @@ void QbsProjectParser::parse(const QVariantMap &config, const Environment &env,
|
||||
QTC_ASSERT(!dir.isEmpty(), return);
|
||||
|
||||
m_currentProgressBase = 0;
|
||||
m_environment = env;
|
||||
|
||||
qbs::SetupProjectParameters params;
|
||||
QVariantMap userConfig = config;
|
||||
|
||||
@@ -50,6 +50,7 @@ public:
|
||||
const QString &configName);
|
||||
void startRuleExecution();
|
||||
void cancel();
|
||||
Utils::Environment environment() const { return m_environment; }
|
||||
|
||||
qbs::Project qbsProject() const;
|
||||
qbs::ErrorInfo error();
|
||||
@@ -69,6 +70,7 @@ private:
|
||||
|
||||
void handleRuleExecutionDone();
|
||||
|
||||
Utils::Environment m_environment;
|
||||
QString m_projectFilePath;
|
||||
qbs::SetupProjectJob *m_qbsSetupProjectJob = nullptr;
|
||||
qbs::BuildJob *m_ruleExecutionJob = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user