AutoTools: Improve parsing of CPPFLAGS

Change-Id: I55019b37a883fca7241aa27bf27e45b03c4262c2
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2015-07-09 13:27:27 +02:00
parent 7ec0a8d889
commit 3c84660ac4
2 changed files with 23 additions and 5 deletions

View File

@@ -131,12 +131,12 @@ QByteArray MakefileParser::defines() const
QStringList MakefileParser::cflags() const
{
return m_cflags;
return m_cppflags + m_cflags;
}
QStringList MakefileParser::cxxflags() const
{
return m_cxxflags;
return m_cppflags + m_cxxflags;
}
void MakefileParser::cancel()
@@ -506,6 +506,15 @@ bool MakefileParser::maybeParseCXXFlag(const QString &term)
return false;
}
bool MakefileParser::maybeParseCPPFlag(const QString &term)
{
if (term.startsWith(QLatin1Char('-'))) {
m_cppflags += term;
return true;
}
return false;
}
void MakefileParser::addAllSources()
{
QStringList extensions;
@@ -550,11 +559,14 @@ void MakefileParser::parseIncludePaths()
foreach (const QString &term, parseTermsAfterAssign(line))
maybeParseDefine(term) || maybeParseInclude(term, dirName)
|| maybeParseCFlag(term);
} else if (varName.endsWith(QLatin1String("CPPFLAGS"))
|| varName.endsWith(QLatin1String("CXXFLAGS"))) {
} else if (varName.endsWith(QLatin1String("CXXFLAGS"))) {
foreach (const QString &term, parseTermsAfterAssign(line))
maybeParseDefine(term) || maybeParseInclude(term, dirName)
|| maybeParseCXXFlag(term);
} else if (varName.endsWith(QLatin1String("CPPFLAGS"))) {
foreach (const QString &term, parseTermsAfterAssign(line))
maybeParseDefine(term) || maybeParseInclude(term, dirName)
|| maybeParseCPPFlag(term);
}
} while (!line.isNull());

View File

@@ -258,6 +258,11 @@ private:
*/
bool maybeParseCXXFlag(const QString &term);
/**
* If term is compiler flag -<flag>, adds it to cppflags and returns true.
*/
bool maybeParseCPPFlag(const QString &term);
private:
bool m_success; ///< Return value for MakefileParser::parse().
@@ -272,6 +277,7 @@ private:
QByteArray m_defines; ///< Return value for MakefileParser::defines()
QStringList m_cflags; ///< Return value for MakefileParser::cflags()
QStringList m_cxxflags; ///< Return value for MakefileParser::cxxflags()
QStringList m_cppflags; ///< The cpp flags, which will be part of both cflags and cxxflags
QString m_line; ///< Current line of the makefile
QTextStream m_textStream; ///< Textstream that represents the makefile