forked from qt-creator/qt-creator
Toolchain: Support also concatenated syntax for MSVC included file
For example: /FIC:/Projects/test/config.h Change-Id: I18dcda6593effa58ece019ce40bca7860cebfc8c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
c1667f9bea
commit
b81e295f58
@@ -566,7 +566,7 @@ WarningFlags GccToolChain::warningFlags(const QStringList &cflags) const
|
|||||||
|
|
||||||
QStringList GccToolChain::includedFiles(const QStringList &flags, const QString &directoryPath) const
|
QStringList GccToolChain::includedFiles(const QStringList &flags, const QString &directoryPath) const
|
||||||
{
|
{
|
||||||
return ToolChain::includedFiles("-include", flags, directoryPath);
|
return ToolChain::includedFiles("-include", flags, directoryPath, PossiblyConcatenatedFlag::No);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList GccToolChain::gccPrepareArguments(const QStringList &flags,
|
QStringList GccToolChain::gccPrepareArguments(const QStringList &flags,
|
||||||
|
|||||||
@@ -1113,7 +1113,7 @@ WarningFlags MsvcToolChain::warningFlags(const QStringList &cflags) const
|
|||||||
QStringList MsvcToolChain::includedFiles(const QStringList &flags,
|
QStringList MsvcToolChain::includedFiles(const QStringList &flags,
|
||||||
const QString &directoryPath) const
|
const QString &directoryPath) const
|
||||||
{
|
{
|
||||||
return ToolChain::includedFiles("/FI", flags, directoryPath);
|
return ToolChain::includedFiles("/FI", flags, directoryPath, PossiblyConcatenatedFlag::Yes);
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolChain::BuiltInHeaderPathsRunner MsvcToolChain::createBuiltInHeaderPathsRunner(
|
ToolChain::BuiltInHeaderPathsRunner MsvcToolChain::createBuiltInHeaderPathsRunner(
|
||||||
|
|||||||
@@ -468,13 +468,23 @@ Utils::LanguageVersion ToolChain::languageVersion(const Utils::Id &language, con
|
|||||||
|
|
||||||
QStringList ToolChain::includedFiles(const QString &option,
|
QStringList ToolChain::includedFiles(const QString &option,
|
||||||
const QStringList &flags,
|
const QStringList &flags,
|
||||||
const QString &directoryPath)
|
const QString &directoryPath,
|
||||||
|
PossiblyConcatenatedFlag possiblyConcatenated)
|
||||||
{
|
{
|
||||||
QStringList result;
|
QStringList result;
|
||||||
|
|
||||||
for (int i = 0; i < flags.size(); ++i) {
|
for (int i = 0; i < flags.size(); ++i) {
|
||||||
if (flags[i] == option && i + 1 < flags.size()) {
|
QString includeFile;
|
||||||
QString includeFile = flags[++i];
|
const QString flag = flags[i];
|
||||||
|
if (possiblyConcatenated == PossiblyConcatenatedFlag::Yes
|
||||||
|
&& flag.startsWith(option)
|
||||||
|
&& flag.size() > option.size()) {
|
||||||
|
includeFile = flag.mid(option.size());
|
||||||
|
}
|
||||||
|
if (includeFile.isEmpty() && flag == option && i + 1 < flags.size())
|
||||||
|
includeFile = flags[++i];
|
||||||
|
|
||||||
|
if (!includeFile.isEmpty()) {
|
||||||
if (!QFileInfo(includeFile).isAbsolute())
|
if (!QFileInfo(includeFile).isAbsolute())
|
||||||
includeFile = directoryPath + "/" + includeFile;
|
includeFile = directoryPath + "/" + includeFile;
|
||||||
result.append(QDir::cleanPath(includeFile));
|
result.append(QDir::cleanPath(includeFile));
|
||||||
|
|||||||
@@ -185,9 +185,11 @@ protected:
|
|||||||
// Make sure to call this function when deriving!
|
// Make sure to call this function when deriving!
|
||||||
virtual bool fromMap(const QVariantMap &data);
|
virtual bool fromMap(const QVariantMap &data);
|
||||||
|
|
||||||
|
enum class PossiblyConcatenatedFlag { No, Yes };
|
||||||
static QStringList includedFiles(const QString &option,
|
static QStringList includedFiles(const QString &option,
|
||||||
const QStringList &flags,
|
const QStringList &flags,
|
||||||
const QString &directoryPath);
|
const QString &directoryPath,
|
||||||
|
PossiblyConcatenatedFlag possiblyConcatenated);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ToolChain(const ToolChain &) = delete;
|
ToolChain(const ToolChain &) = delete;
|
||||||
|
|||||||
Reference in New Issue
Block a user