diff options
Diffstat (limited to 'src/plugins/cpptools/compileroptionsbuilder.h')
-rw-r--r-- | src/plugins/cpptools/compileroptionsbuilder.h | 70 |
1 files changed, 20 insertions, 50 deletions
diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index 66202e72d6..12c2b8bce2 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -31,50 +31,30 @@ namespace CppTools { -enum class UseSystemHeader : char -{ - Yes, - No -}; - -enum class SkipBuiltIn : char -{ - Yes, - No -}; - -enum class SkipLanguageDefines : char -{ - Yes, - No -}; +enum class UsePrecompiledHeaders : char { Yes, No }; +enum class UseSystemHeader : char { Yes, No }; +enum class SkipBuiltIn : char { Yes, No }; +enum class SkipLanguageDefines : char { Yes, No }; class CPPTOOLS_EXPORT CompilerOptionsBuilder { public: - enum class PchUsage { - None, - Use - }; - CompilerOptionsBuilder(const ProjectPart &projectPart, UseSystemHeader useSystemHeader = UseSystemHeader::No, SkipBuiltIn skipBuiltInHeaderPathsAndDefines = SkipBuiltIn::No, SkipLanguageDefines skipLanguageDefines = SkipLanguageDefines::Yes, - QString clangVersion = QString(), - QString clangResourceDirectory = QString()); + const QString &clangVersion = QString(), + const QString &clangResourceDirectory = QString()); - QStringList build(ProjectFile::Kind fileKind, - PchUsage pchUsage); - QStringList options() const; + QStringList build(ProjectFile::Kind fileKind, UsePrecompiledHeaders usePrecompiledHeaders); + QStringList options() const { return m_options; } - virtual void addExtraOptions() {} // Add options based on project part virtual void addToolchainAndProjectMacros(); void addWordWidth(); void addToolchainFlags(); void addHeaderPathOptions(); - void addPrecompiledHeaderOptions(PchUsage pchUsage); + void addPrecompiledHeaderOptions(UsePrecompiledHeaders usePrecompiledHeaders); void addMacros(const ProjectExplorer::Macros ¯os); void addTargetTriple(); @@ -92,36 +72,26 @@ public: void addProjectConfigFileInclude(); void undefineClangVersionMacrosForMsvc(); -protected: - virtual bool excludeDefineDirective(const ProjectExplorer::Macro ¯o) const; - virtual bool excludeHeaderPath(const QString &headerPath) const; - - virtual QString defineOption() const; - virtual QString undefineOption() const; - virtual QString includeOption() const; - // Add custom options - void add(const QString &option); + void add(const QString &option) { m_options.append(option); } + virtual void addExtraOptions() {} +private: + bool excludeDefineDirective(const ProjectExplorer::Macro ¯o) const; QString includeDirOptionForPath(const QString &path) const; + void addWrappedQtHeadersIncludePath(QStringList &list) const; +private: const ProjectPart &m_projectPart; -private: - QByteArray macroOption(const ProjectExplorer::Macro ¯o) const; - QByteArray toDefineOption(const ProjectExplorer::Macro ¯o) const; - QString defineDirectiveToDefineOption(const ProjectExplorer::Macro &marco) const; + const UseSystemHeader m_useSystemHeader; + const SkipBuiltIn m_skipBuiltInHeaderPathsAndDefines; + const SkipLanguageDefines m_skipLanguageDefines; - void addWrappedQtHeadersIncludePath(QStringList &list); + const QString m_clangVersion; + const QString m_clangResourceDirectory; QStringList m_options; - - QString m_clangVersion; - QString m_clangResourceDirectory; - - UseSystemHeader m_useSystemHeader; - SkipBuiltIn m_skipBuiltInHeaderPathsAndDefines; - SkipLanguageDefines m_skipLanguageDefines; }; } // namespace CppTools |