fill in project name for CMake projects

This commit is contained in:
Fred Emmott
2009-01-15 14:48:28 +00:00
parent 56ebc27e09
commit a4624993b9
2 changed files with 21 additions and 2 deletions

View File

@@ -87,6 +87,7 @@ void CMakeProject::parseCMakeLists(const QDir &directory)
CMakeCbpParser cbpparser;
qDebug()<<"Parsing file "<<cbpFile;
if (cbpparser.parseCbpFile(cbpFile)) {
m_projectName = cbpparser.projectName();
qDebug()<<"Building Tree";
// TODO do a intelligent updating of the tree
buildTree(m_rootNode, cbpparser.fileList());
@@ -200,8 +201,7 @@ ProjectExplorer::FolderNode *CMakeProject::findOrCreateFolder(CMakeProjectNode *
QString CMakeProject::name() const
{
// TODO
return "";
return m_projectName;
}
Core::IFile *CMakeProject::file() const
@@ -469,6 +469,8 @@ void CMakeCbpParser::parseProject()
readNext();
if (isEndElement()) {
return;
} else if (name() == "Option") {
parseOption();
} else if (name() == "Unit") {
parseUnit();
} else if (name() == "Build") {
@@ -537,6 +539,19 @@ void CMakeCbpParser::parseTargetOption()
}
}
QString CMakeCbpParser::projectName() const
{
return m_projectName;
}
void CMakeCbpParser::parseOption()
{
if (attributes().hasAttribute("title"))
m_projectName = attributes().value("title").toString();
if(isStartElement())
parseUnknownElement();
}
void CMakeCbpParser::parseMakeCommand()
{
while (!atEnd()) {

View File

@@ -118,6 +118,7 @@ private:
CMakeManager *m_manager;
QString m_fileName;
CMakeFile *m_file;
QString m_projectName;
// TODO probably need a CMake specific node structure
CMakeProjectNode* m_rootNode;
@@ -137,10 +138,12 @@ public:
QList<ProjectExplorer::FileNode *> fileList();
QStringList includeFiles();
QList<CMakeTarget> targets();
QString projectName() const;
private:
void parseCodeBlocks_project_file();
void parseProject();
void parseBuild();
void parseOption();
void parseTarget();
void parseTargetOption();
void parseMakeCommand();
@@ -157,6 +160,7 @@ private:
CMakeTarget m_target;
bool m_targetType;
QList<CMakeTarget> m_targets;
QString m_projectName;
};
class CMakeFile : public Core::IFile