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
|
||||
{
|
||||
return ToolChain::includedFiles("-include", flags, directoryPath);
|
||||
return ToolChain::includedFiles("-include", flags, directoryPath, PossiblyConcatenatedFlag::No);
|
||||
}
|
||||
|
||||
QStringList GccToolChain::gccPrepareArguments(const QStringList &flags,
|
||||
|
||||
@@ -1113,7 +1113,7 @@ WarningFlags MsvcToolChain::warningFlags(const QStringList &cflags) const
|
||||
QStringList MsvcToolChain::includedFiles(const QStringList &flags,
|
||||
const QString &directoryPath) const
|
||||
{
|
||||
return ToolChain::includedFiles("/FI", flags, directoryPath);
|
||||
return ToolChain::includedFiles("/FI", flags, directoryPath, PossiblyConcatenatedFlag::Yes);
|
||||
}
|
||||
|
||||
ToolChain::BuiltInHeaderPathsRunner MsvcToolChain::createBuiltInHeaderPathsRunner(
|
||||
|
||||
@@ -468,13 +468,23 @@ Utils::LanguageVersion ToolChain::languageVersion(const Utils::Id &language, con
|
||||
|
||||
QStringList ToolChain::includedFiles(const QString &option,
|
||||
const QStringList &flags,
|
||||
const QString &directoryPath)
|
||||
const QString &directoryPath,
|
||||
PossiblyConcatenatedFlag possiblyConcatenated)
|
||||
{
|
||||
QStringList result;
|
||||
|
||||
for (int i = 0; i < flags.size(); ++i) {
|
||||
if (flags[i] == option && i + 1 < flags.size()) {
|
||||
QString includeFile = flags[++i];
|
||||
QString includeFile;
|
||||
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())
|
||||
includeFile = directoryPath + "/" + includeFile;
|
||||
result.append(QDir::cleanPath(includeFile));
|
||||
|
||||
@@ -185,9 +185,11 @@ protected:
|
||||
// Make sure to call this function when deriving!
|
||||
virtual bool fromMap(const QVariantMap &data);
|
||||
|
||||
enum class PossiblyConcatenatedFlag { No, Yes };
|
||||
static QStringList includedFiles(const QString &option,
|
||||
const QStringList &flags,
|
||||
const QString &directoryPath);
|
||||
const QString &directoryPath,
|
||||
PossiblyConcatenatedFlag possiblyConcatenated);
|
||||
|
||||
private:
|
||||
ToolChain(const ToolChain &) = delete;
|
||||
|
||||
Reference in New Issue
Block a user