summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/compileroptionsbuilder.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2018-06-11 12:52:04 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-11-05 08:49:24 +0000
commit888ea6bbbb0f4c6bb6b5616046e600b9520e4faf (patch)
tree7b0d74ba0fc8a4b9a7ba2147fc2fa447d205a81c /src/plugins/cpptools/compileroptionsbuilder.cpp
parentc05ad9a951118ed0fb4343218b5ec55dae21b9c1 (diff)
downloadqt-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.cpp22
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.