forked from qt-creator/qt-creator
MSVC: Consider build environment when calculating header paths
Fixes: QTCREATORBUG-25816 Change-Id: Id6274d2bec4ed3db07729f1d88a5a9ad82c8d98d Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -1125,13 +1125,15 @@ ToolChain::BuiltInHeaderPathsRunner MsvcToolChain::createBuiltInHeaderPathsRunne
|
|||||||
|
|
||||||
return [this, fullEnv](const QStringList &, const QString &, const QString &) {
|
return [this, fullEnv](const QStringList &, const QString &, const QString &) {
|
||||||
QMutexLocker locker(&m_headerPathsMutex);
|
QMutexLocker locker(&m_headerPathsMutex);
|
||||||
if (m_headerPaths.isEmpty()) {
|
const auto envList = fullEnv.toStringList();
|
||||||
m_headerPaths = transform<QVector>(fullEnv.pathListValue("INCLUDE"),
|
const auto it = m_headerPathsPerEnv.constFind(envList);
|
||||||
[](const FilePath &p) {
|
if (it != m_headerPathsPerEnv.cend())
|
||||||
return HeaderPath(p.toString(), HeaderPathType::BuiltIn);
|
return *it;
|
||||||
});
|
const auto mapper = [](const FilePath &p) { // TODO: Define functions for this.
|
||||||
}
|
return HeaderPath(p.toString(), HeaderPathType::BuiltIn);
|
||||||
return m_headerPaths;
|
};
|
||||||
|
return *m_headerPathsPerEnv.insert(envList,
|
||||||
|
transform<QVector>(fullEnv.pathListValue("INCLUDE"), mapper));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1787,7 +1789,7 @@ ClangClToolChain::BuiltInHeaderPathsRunner ClangClToolChain::createBuiltInHeader
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
QMutexLocker locker(&m_headerPathsMutex);
|
QMutexLocker locker(&m_headerPathsMutex);
|
||||||
m_headerPaths.clear();
|
m_headerPathsPerEnv.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
return MsvcToolChain::createBuiltInHeaderPathsRunner(env);
|
return MsvcToolChain::createBuiltInHeaderPathsRunner(env);
|
||||||
|
@@ -140,7 +140,7 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
mutable QMutex m_headerPathsMutex;
|
mutable QMutex m_headerPathsMutex;
|
||||||
mutable HeaderPaths m_headerPaths;
|
mutable QHash<QStringList, HeaderPaths> m_headerPathsPerEnv;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void updateEnvironmentModifications(Utils::EnvironmentItems modifications);
|
void updateEnvironmentModifications(Utils::EnvironmentItems modifications);
|
||||||
|
Reference in New Issue
Block a user