Fixes: Parse all the targets.

Task:     -
RevBy:    -
AutoTest: -
Details:  (Only outputs them via qDebug().)
This commit is contained in:
dt
2008-12-08 12:24:31 +01:00
parent 440053f71e
commit e503e1e4e9
2 changed files with 31 additions and 2 deletions

View File

@@ -393,12 +393,36 @@ void CMakeCbpParser::parseBuild()
void CMakeCbpParser::parseTarget()
{
m_targetOutput.clear();
m_targetType = false;
while(!atEnd()) {
readNext();
if (isEndElement()) {
if (m_targetType && !m_targetOutput.isEmpty()) {
qDebug()<<"found target "<<m_targetOutput;
m_targets.insert(m_targetOutput);
}
return;
} else if (name() == "Compiler") {
parseCompiler();
} else if (name() == "Option") {
parseTargetOption();
} else if (isStartElement()) {
parseUnknownElement();
}
}
}
void CMakeCbpParser::parseTargetOption()
{
if (attributes().hasAttribute("output"))
m_targetOutput = attributes().value("output").toString();
else if (attributes().hasAttribute("type") && attributes().value("type") == "1")
m_targetType = true;
while(!atEnd()) {
readNext();
if (isEndElement()) {
return;
} else if (name() == "Compiler") {
parseCompiler();
} else if (isStartElement()) {
parseUnknownElement();
}

View File

@@ -123,13 +123,18 @@ private:
void parseProject();
void parseBuild();
void parseTarget();
void parseTargetOption();
void parseCompiler();
void parseAdd();
void parseUnit();
void parseUnknownElement();
QSet<QString> m_targets;
QList<ProjectExplorer::FileNode *> m_fileList;
QStringList m_includeFiles;
QString m_targetOutput;
bool m_targetType;
};
class CMakeFile : public Core::IFile