diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2018-06-11 12:52:04 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2020-11-05 08:49:24 +0000 |
commit | 888ea6bbbb0f4c6bb6b5616046e600b9520e4faf (patch) | |
tree | 7b0d74ba0fc8a4b9a7ba2147fc2fa447d205a81c /src/plugins/cpptools/compileroptionsbuilder.cpp | |
parent | c05ad9a951118ed0fb4343218b5ec55dae21b9c1 (diff) | |
download | qt-creator-888ea6bbbb0f4c6bb6b5616046e600b9520e4faf.tar.gz |
CppTools: Take "-include" files into account
Fixes: QTCREATORBUG-20602
Change-Id: Ibfc518fc64ed75f93265db800558ec1d2e424bb4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp')
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 246298d98c..0fe9deb7d1 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -140,6 +140,7 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind, addLanguageVersionAndExtensions(); addMsvcExceptions(); + addIncludedFiles(m_projectPart.includedFiles); // GCC adds these before precompiled headers. addPrecompiledHeaderOptions(usePrecompiledHeaders); addProjectConfigFileInclude(); @@ -368,6 +369,21 @@ void CompilerOptionsBuilder::addHeaderPathOptions() } } +void CompilerOptionsBuilder::addIncludedFiles(const QStringList &files) +{ + QStringList result; + + const QString includeOptionString + = QLatin1String(isClStyle() ? includeFileOptionCl : includeFileOptionGcc); + for (const QString &file : files) { + if (QFile::exists(file)) { + result += includeOptionString; + result += QDir::toNativeSeparators(file); + } + } + m_options.append(result); +} + void CompilerOptionsBuilder::addPrecompiledHeaderOptions(UsePrecompiledHeaders usePrecompiledHeaders) { for (const QString &pchFile : m_projectPart.precompiledHeaders) { @@ -830,6 +846,12 @@ void CompilerOptionsBuilder::evaluateCompilerFlags() continue; } + // These were already parsed into ProjectPart::includedFiles. + if (option == includeFileOptionCl || option == includeFileOptionGcc) { + skipNext = true; + continue; + } + if (option.startsWith("/Y", Qt::CaseSensitive) || (option.startsWith("/F", Qt::CaseSensitive) && option != "/F")) { // Precompiled header flags. |