forked from qt-creator/qt-creator
Add sysroot to the gcc tool chain system header detection
If no sysroot is applied the sysroot/usr/include path is not detected. Is fixing a typo too. Change-Id: I6a4e750b8b24b9f702ff4874810a91f020fca410 Reviewed-by: Alessandro Portale <alessandro.portale@nokia.com>
This commit is contained in:
@@ -146,10 +146,12 @@ static QByteArray gccPredefinedMacros(const Utils::FileName &gcc, const QStringL
|
||||
return predefinedMacros;
|
||||
}
|
||||
|
||||
static QList<HeaderPath> gccHeaderPathes(const Utils::FileName &gcc, const QStringList &env)
|
||||
QList<HeaderPath> GccToolChain::gccHeaderPaths(const Utils::FileName &gcc, const QStringList &env, const QString &sysrootPath)
|
||||
{
|
||||
QList<HeaderPath> systemHeaderPaths;
|
||||
QStringList arguments;
|
||||
if (!sysrootPath.isEmpty())
|
||||
arguments.append(QString::fromLatin1("--sysroot=%1").arg(sysrootPath));
|
||||
arguments << QLatin1String("-xc++")
|
||||
<< QLatin1String("-E")
|
||||
<< QLatin1String("-v")
|
||||
@@ -326,7 +328,7 @@ GccToolChain::GccToolChain(const GccToolChain &tc) :
|
||||
m_debuggerCommand(tc.debuggerCommand()),
|
||||
m_targetAbi(tc.m_targetAbi),
|
||||
m_supportedAbis(tc.m_supportedAbis),
|
||||
m_headerPathes(tc.m_headerPathes),
|
||||
m_headerPaths(tc.m_headerPaths),
|
||||
m_version(tc.m_version)
|
||||
{ }
|
||||
|
||||
@@ -409,13 +411,13 @@ ProjectExplorer::ToolChain::CompilerFlags GccToolChain::compilerFlags(const QStr
|
||||
|
||||
QList<HeaderPath> GccToolChain::systemHeaderPaths() const
|
||||
{
|
||||
if (m_headerPathes.isEmpty()) {
|
||||
if (m_headerPaths.isEmpty()) {
|
||||
// Using a clean environment breaks ccache/distcc/etc.
|
||||
Utils::Environment env = Utils::Environment::systemEnvironment();
|
||||
addToEnvironment(env);
|
||||
m_headerPathes = gccHeaderPathes(m_compilerCommand, env.toStringList());
|
||||
m_headerPaths = gccHeaderPaths(m_compilerCommand, env.toStringList());
|
||||
}
|
||||
return m_headerPathes;
|
||||
return m_headerPaths;
|
||||
}
|
||||
|
||||
void GccToolChain::addToEnvironment(Utils::Environment &env) const
|
||||
|
@@ -97,6 +97,8 @@ protected:
|
||||
virtual QList<Abi> detectSupportedAbis() const;
|
||||
virtual QString detectVersion() const;
|
||||
|
||||
static QList<HeaderPath> gccHeaderPaths(const Utils::FileName &gcc, const QStringList &env, const QString &sysrootPath = QString());
|
||||
|
||||
mutable QByteArray m_predefinedMacros;
|
||||
|
||||
private:
|
||||
@@ -109,7 +111,7 @@ private:
|
||||
|
||||
Abi m_targetAbi;
|
||||
mutable QList<Abi> m_supportedAbis;
|
||||
mutable QList<HeaderPath> m_headerPathes;
|
||||
mutable QList<HeaderPath> m_headerPaths;
|
||||
mutable QString m_version;
|
||||
|
||||
friend class Internal::GccToolChainFactory;
|
||||
|
Reference in New Issue
Block a user