summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/compileroptionsbuilder.cpp
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@qt.io>2019-10-02 13:57:07 +0200
committerCristian Adam <cristian.adam@qt.io>2019-10-02 13:43:22 +0000
commit93ec10754f6186b0331b52cb9e96ad3f4341af91 (patch)
treeeabc56507ccdcd49a1ec740b8d7695ae1945991a /src/plugins/cpptools/compileroptionsbuilder.cpp
parent6ec8017bc675692f3d325c0cd95c9c4c7a79db7d (diff)
downloadqt-creator-93ec10754f6186b0331b52cb9e96ad3f4341af91.tar.gz
CppTools: Make code model on "cl" mode more robust
Unknown command line options starting with / are now transformed into commands starting with -, which will cause unknown commands warnings in libclang. The / commands cause errors because they are treated as missing files. Fixes: QTCREATORBUG-22871 Change-Id: I75f7878ab6a7951df24c954ccff1c298ea65f839 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.cpp')
-rw-r--r--src/plugins/cpptools/compileroptionsbuilder.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp
index 109613d2c0..7fde0b3a57 100644
--- a/src/plugins/cpptools/compileroptionsbuilder.cpp
+++ b/src/plugins/cpptools/compileroptionsbuilder.cpp
@@ -792,6 +792,15 @@ void CompilerOptionsBuilder::evaluateCompilerFlags()
containsDriverMode = true;
}
+ // Transfrom the "/" starting commands into "-" commands, which if
+ // unknown will not cause clang to fail because it thinks
+ // it's a missing file.
+ if (theOption.startsWith("/") &&
+ (toolChain == ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID ||
+ toolChain == ProjectExplorer::Constants::CLANG_CL_TOOLCHAIN_TYPEID)) {
+ theOption[0] = '-';
+ }
+
m_compilerFlags.flags.append(theOption);
}