diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-09-11 14:08:00 +0200 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-09-22 15:00:48 +0000 |
commit | 68a49c79da0ae709e2e4e0fd6584587a6e2d8473 (patch) | |
tree | 4b46b59639f17d436098478fc9bf3030e1d5af17 /src/plugins/clangcodemodel | |
parent | 736e568d942ead4bd3bddd40eeb3d58775a0c33b (diff) | |
download | qt-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.cpp | 43 |
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) |