diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2019-04-25 16:06:39 +0200 |
---|---|---|
committer | Ivan Donchevskii <yv.ivan@gmail.com> | 2019-04-30 18:00:17 +0000 |
commit | cc9d246b028c518d1fc01fc8318f0945949040d3 (patch) | |
tree | e80a736e079808d48098c773e51befc505855b55 /src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp | |
parent | a5148b53638bdc9abe2006c7748936524f2d902c (diff) |
CompilationDatabase: Asjust the sysroot and target handling
If the sysroot option is found - set it as a kit sysroot (only
in CompilationDatabase project where we have a cloned kit
which does not affect the other existing kits).
In other cases use the backup for the sysroot from the
toolchain (can exist for clang toolchains based on mingw).
Provide target when searching builtin include paths for clang.
Fixes: QTCREATORBUG-22339
Change-Id: Ibe07c2e490ba4f7e0d259e6df698d641dbfd0298
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp')
-rw-r--r-- | src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp index 31dbcadf94..ff931cc387 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseutils.cpp @@ -98,7 +98,8 @@ void filteredFlags(const QString &fileName, QStringList &flags, HeaderPaths &headerPaths, Macros ¯os, - CppTools::ProjectFile::Kind &fileKind) + CppTools::ProjectFile::Kind &fileKind, + QString &sysRoot) { if (flags.empty()) return; @@ -182,6 +183,12 @@ void filteredFlags(const QString &fileName, continue; } + if (flag.startsWith("--sysroot=")) { + if (sysRoot.isEmpty()) + sysRoot = flag.mid(10); + continue; + } + if ((flag.startsWith("-std=") || flag.startsWith("/std:")) && fileKind == CppTools::ProjectFile::Unclassified) { const bool cpp = (flag.contains("c++") || flag.contains("gnu++")); |