diff --git a/src/plugins/autotoolsprojectmanager/makefileparser.cpp b/src/plugins/autotoolsprojectmanager/makefileparser.cpp index 53a79134a6d..b3284243ebc 100644 --- a/src/plugins/autotoolsprojectmanager/makefileparser.cpp +++ b/src/plugins/autotoolsprojectmanager/makefileparser.cpp @@ -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()); diff --git a/src/plugins/autotoolsprojectmanager/makefileparser.h b/src/plugins/autotoolsprojectmanager/makefileparser.h index 463c56e65a8..32569d6a116 100644 --- a/src/plugins/autotoolsprojectmanager/makefileparser.h +++ b/src/plugins/autotoolsprojectmanager/makefileparser.h @@ -258,6 +258,11 @@ private: */ bool maybeParseCXXFlag(const QString &term); + /** + * If term is compiler flag -, adds it to cppflags and returns true. + */ + bool maybeParseCPPFlag(const QString &term); + private: bool m_success; ///< Return value for MakefileParser::parse(). @@ -271,7 +276,8 @@ private: QStringList m_includePaths; ///< Return value for MakefileParser::includePaths() 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_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