summaryrefslogtreecommitdiff
path: root/src/plugins/clangcodemodel
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2017-09-11 14:08:00 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2017-09-22 15:00:48 +0000
commit68a49c79da0ae709e2e4e0fd6584587a6e2d8473 (patch)
tree4b46b59639f17d436098478fc9bf3030e1d5af17 /src/plugins/clangcodemodel
parent736e568d942ead4bd3bddd40eeb3d58775a0c33b (diff)
downloadqt-creator-68a49c79da0ae709e2e4e0fd6584587a6e2d8473.tar.gz
Clang: Unify compiler options builders
Make build command the same for all builders. Minimize differences. Change-Id: I1cfe5071b3afb4944ed178fff1e57d3aee45d8a9 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/clangcodemodel')
-rw-r--r--src/plugins/clangcodemodel/clangutils.cpp43
1 files changed, 10 insertions, 33 deletions
diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp
index e436ec275f..0058ee4023 100644
--- a/src/plugins/clangcodemodel/clangutils.cpp
+++ b/src/plugins/clangcodemodel/clangutils.cpp
@@ -70,46 +70,21 @@ QStringList createClangOptions(const ProjectPart::Ptr &pPart, const QString &fil
return createClangOptions(pPart, fileKind);
}
-class LibClangOptionsBuilder : public ClangCompilerOptionsBuilder
+class LibClangOptionsBuilder final : public ClangCompilerOptionsBuilder
{
public:
- static QStringList build(const ProjectPart::Ptr &projectPart, ProjectFile::Kind fileKind)
+ LibClangOptionsBuilder(const ProjectPart &projectPart)
+ : ClangCompilerOptionsBuilder(projectPart, CLANG_VERSION, CLANG_RESOURCE_DIR)
{
- if (projectPart.isNull())
- return QStringList();
-
- LibClangOptionsBuilder optionsBuilder(*projectPart.data());
-
- optionsBuilder.addWordWidth();
- optionsBuilder.addTargetTriple();
- optionsBuilder.addLanguageOption(fileKind);
- optionsBuilder.addOptionsForLanguage(/*checkForBorlandExtensions*/ true);
- optionsBuilder.enableExceptions();
-
- optionsBuilder.addDefineToAvoidIncludingGccOrMinGwIntrinsics();
- optionsBuilder.addDefineFloat128ForMingw();
- optionsBuilder.addToolchainAndProjectDefines();
- optionsBuilder.undefineCppLanguageFeatureMacrosForMsvc2015();
-
- optionsBuilder.addPredefinedMacrosAndHeaderPathsOptions();
- optionsBuilder.addWrappedQtHeadersIncludePath();
- optionsBuilder.addHeaderPathOptions();
- optionsBuilder.addDummyUiHeaderOnDiskIncludePath();
- optionsBuilder.addProjectConfigFileInclude();
-
- optionsBuilder.addMsvcCompatibilityVersion();
-
- optionsBuilder.addExtraOptions();
-
- return optionsBuilder.options();
}
-private:
- LibClangOptionsBuilder(const CppTools::ProjectPart &projectPart)
- : ClangCompilerOptionsBuilder(projectPart, CLANG_VERSION, CLANG_RESOURCE_DIR)
+ void addExtraOptions() final
{
+ addDummyUiHeaderOnDiskIncludePath();
+ ClangCompilerOptionsBuilder::addExtraOptions();
}
+private:
void addDummyUiHeaderOnDiskIncludePath()
{
const QString path = ModelManagerSupportClang::instance()->dummyUiHeaderOnDiskDirPath();
@@ -125,7 +100,9 @@ private:
*/
QStringList createClangOptions(const ProjectPart::Ptr &pPart, ProjectFile::Kind fileKind)
{
- return LibClangOptionsBuilder::build(pPart, fileKind);
+ if (!pPart)
+ return QStringList();
+ return LibClangOptionsBuilder(*pPart).build(fileKind, CompilerOptionsBuilder::PchUsage::None);
}
ProjectPart::Ptr projectPartForFile(const QString &filePath)