CppTools: Use CompilerOptionsBuilder as an object

Makes the client code more readable.

Change-Id: Ie98ba93c758643039d3ebdc7550b1c4ac9473298
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-06-25 13:46:22 +02:00
parent d41c634be0
commit dcccb4cb8d
3 changed files with 83 additions and 73 deletions

View File

@@ -214,21 +214,24 @@ private:
class CPPTOOLS_EXPORT CompilerOptionsBuilder
{
public:
CompilerOptionsBuilder(const ProjectPart::Ptr &projectPart);
QStringList options() const;
void add(const QString &option);
typedef std::function<bool (const QString &)> IsBlackListed;
static QStringList createHeaderPathOptions(const ProjectPart::HeaderPaths &headerPaths,
IsBlackListed isBlackListed = IsBlackListed(),
const QString &toolchainType = QLatin1String("clang"));
void addHeaderPathOptions(IsBlackListed isBlackListed = IsBlackListed(),
const QString &toolchainType = QLatin1String("clang"));
void addToolchainAndProjectDefines(const QString &toolchainType = QLatin1String("clang"));
void addLanguageOption(ProjectFile::Kind fileKind,
const QString &toolchainType = QLatin1String("clang"));
void addOptionsForLanguage(bool checkForBorlandExtensions = true,
const QString &toolchainType = QLatin1String("clang"));
static QStringList createDefineOptions(const QByteArray &defines,
bool toolchainDefines = false,
const QString &toolchainType = QLatin1String("clang"));
static QStringList createLanguageOption(ProjectFile::Kind fileKind, bool objcExt,
const QString &toolchainType = QLatin1String("clang"));
static QStringList createOptionsForLanguage(ProjectPart::LanguageVersion languageVersion,
ProjectPart::LanguageExtensions languageExtensions,
bool checkForBorlandExtensions = true,
const QString &toolchainType = QLatin1String("clang"));
private:
ProjectPart::Ptr m_projectPart;
QStringList m_options;
};
} // namespace CppTools