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 &) {
|
||||
QMutexLocker locker(&m_headerPathsMutex);
|
||||
if (m_headerPaths.isEmpty()) {
|
||||
m_headerPaths = transform<QVector>(fullEnv.pathListValue("INCLUDE"),
|
||||
[](const FilePath &p) {
|
||||
return HeaderPath(p.toString(), HeaderPathType::BuiltIn);
|
||||
});
|
||||
}
|
||||
return m_headerPaths;
|
||||
const auto envList = fullEnv.toStringList();
|
||||
const auto it = m_headerPathsPerEnv.constFind(envList);
|
||||
if (it != m_headerPathsPerEnv.cend())
|
||||
return *it;
|
||||
const auto mapper = [](const FilePath &p) { // TODO: Define functions for this.
|
||||
return HeaderPath(p.toString(), HeaderPathType::BuiltIn);
|
||||
};
|
||||
return *m_headerPathsPerEnv.insert(envList,
|
||||
transform<QVector>(fullEnv.pathListValue("INCLUDE"), mapper));
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1787,7 +1789,7 @@ ClangClToolChain::BuiltInHeaderPathsRunner ClangClToolChain::createBuiltInHeader
|
||||
{
|
||||
{
|
||||
QMutexLocker locker(&m_headerPathsMutex);
|
||||
m_headerPaths.clear();
|
||||
m_headerPathsPerEnv.clear();
|
||||
}
|
||||
|
||||
return MsvcToolChain::createBuiltInHeaderPathsRunner(env);
|
||||
|
@@ -140,7 +140,7 @@ protected:
|
||||
|
||||
protected:
|
||||
mutable QMutex m_headerPathsMutex;
|
||||
mutable HeaderPaths m_headerPaths;
|
||||
mutable QHash<QStringList, HeaderPaths> m_headerPathsPerEnv;
|
||||
|
||||
private:
|
||||
void updateEnvironmentModifications(Utils::EnvironmentItems modifications);
|
||||
|
Reference in New Issue
Block a user