while (cont)
{
std::string stdfileName = crea::wx2std(fileName);
+ std::size_t fileTypePos = stdfileName.find_last_of(".");
+ std::string fileType;
+ if(fileTypePos != std::string::npos)
+ fileType = stdfileName.substr(fileTypePos);
+ else
+ fileType = "";
+
//if CMakeLists, create CMakeLists
if(stdfileName == "CMakeLists.txt")
{
this->CMakeLists = new modelCDMCMakeListsFile(this, this->path + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
this->children.push_back(this->CMakeLists);
}
- //if is an unknown file, create file
else
{
- modelCDMFile* file = new modelCDMFile(this, this->path + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
- std::string extension = stdfileName.substr(stdfileName.size()-4);
- //if is cxx or cpp check if is the main file.
- if (mainFile == NULL && (extension == ".cxx" || extension == ".cpp"))
+ //if is a code file, create modelCDMCodeFile and check for main file
+ if(
+ fileType == ".c" ||
+ fileType == ".cxx" ||
+ fileType == ".h" ||
+ fileType == ".cpp" ||
+ fileType == ".txx" ||
+ fileType == ".cmake" )
{
- std::ifstream fileStream((this->path + CDMUtilities::SLASH + stdfileName).c_str());
+ modelCDMCodeFile* file = new modelCDMCodeFile(this, this->path + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
- if (fileStream.is_open())
+ if (mainFile == NULL && (fileType == ".cxx" || fileType == ".cpp"))
{
- std::string fileContent = "";
- char ch = fileStream.get();
- while(!fileStream.eof())
- {
- fileContent.push_back(ch);
- ch = fileStream.get();
- }
- fileStream.close();
-
- boost::regex expression("^\\h*IMPLEMENT_APP[#\\s\\(]");
- std::string::const_iterator start, end;
- start = fileContent.begin();
- end = fileContent.end();
- boost::match_results<std::string::const_iterator> what;
- boost::match_flag_type flags = boost::match_default;
- if(boost::regex_search(start, end, what, expression, flags))
- {
- std::cout << "found main wxwidgets file: " << stdfileName << std::endl;
- this->mainFile = file;
- }
- else
+ std::ifstream fileStream((this->path + CDMUtilities::SLASH + stdfileName).c_str());
+
+ if (fileStream.is_open())
{
- expression = boost::regex("^\\h*int\\h+main[#\\s\\(]");
+ std::string fileContent = "";
+ char ch = fileStream.get();
+ while(!fileStream.eof())
+ {
+ fileContent.push_back(ch);
+ ch = fileStream.get();
+ }
+ fileStream.close();
+
+ boost::regex expression("^\\h*IMPLEMENT_APP[#\\s\\(]");
+ std::string::const_iterator start, end;
start = fileContent.begin();
end = fileContent.end();
+ boost::match_results<std::string::const_iterator> what;
+ boost::match_flag_type flags = boost::match_default;
if(boost::regex_search(start, end, what, expression, flags))
{
- std::cout << "found main console file: " << stdfileName << std::endl;
+ std::cout << "found main wxwidgets file: " << stdfileName << std::endl;
this->mainFile = file;
}
+ else
+ {
+ expression = boost::regex("^\\h*int\\h+main[#\\s\\(]");
+ start = fileContent.begin();
+ end = fileContent.end();
+ if(boost::regex_search(start, end, what, expression, flags))
+ {
+ std::cout << "found main console file: " << stdfileName << std::endl;
+ this->mainFile = file;
+ }
+ }
}
}
-
+ this->children.push_back(file);
+ }
+ //if is an unknown file, create file
+ else
+ {
+ modelCDMFile* file = new modelCDMFile(this, this->path + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
+ this->children.push_back(file);
}
- this->children.push_back(file);
+
}
cont = dir.GetNext(&fileName);
while (cont)
{
std::string stdfileName = crea::wx2std(fileName);
+ std::size_t fileTypePos = stdfileName.find_last_of(".");
+ std::string fileType;
+ if(fileTypePos != std::string::npos)
+ fileType = stdfileName.substr(fileTypePos);
+ else
+ fileType = "";
//if CMakeLists, create CMakeLists
if(stdfileName == "CMakeLists.txt")
return false;
}
}
- //if is an unknown file, create file
+ // if is a code file, create modelCDMCodeFile
+ // if is an unknown file, create file
else
{
bool found = false;
CDMUtilities::splitter::split(wordBits,word," \n",CDMUtilities::splitter::no_empties);
if (wordBits[wordBits.size() - 1] == "main" || wordBits[wordBits.size() - 1] == "IMPLEMENT_APP")
{
- this->mainFile = dynamic_cast<modelCDMFile*>(children[i]);
+ this->mainFile = dynamic_cast<modelCDMCodeFile*>(children[i]);
}
}
fileStream.close();
if(!found)
{
- modelCDMFile* file = new modelCDMFile(this, this->path + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
-
- std::string extension = stdfileName.substr(stdfileName.size()-4);
- if (mainFile == NULL && (extension == ".cxx" || extension == ".cpp"))
+ if (fileType == ".c" ||
+ fileType == ".cxx" ||
+ fileType == ".h" ||
+ fileType == ".cpp" ||
+ fileType == ".txx" ||
+ fileType == ".cmake" )
{
- std::ifstream fileStream;
- std::string word;
- fileStream.open((this->path + CDMUtilities::SLASH + stdfileName).c_str());
- while (fileStream.is_open() && !fileStream.eof())
+ modelCDMCodeFile* file = new modelCDMCodeFile(this, this->path + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
+
+ if(mainFile == NULL && (fileType == ".cxx" || fileType == ".cpp"))
{
- //get sets
- std::getline(fileStream,word,'(');
- std::vector<std::string> wordBits;
- CDMUtilities::splitter::split(wordBits,word," \n",CDMUtilities::splitter::no_empties);
- if (wordBits[wordBits.size() - 1] == "main" || wordBits[wordBits.size() - 1] == "IMPLEMENT_APP")
+ std::ifstream fileStream;
+ std::string word;
+ fileStream.open((this->path + CDMUtilities::SLASH + stdfileName).c_str());
+ while (fileStream.is_open() && !fileStream.eof())
{
- this->mainFile = file;
+ //get sets
+ std::getline(fileStream,word,'(');
+ std::vector<std::string> wordBits;
+ CDMUtilities::splitter::split(wordBits,word," \n",CDMUtilities::splitter::no_empties);
+ if (wordBits[wordBits.size() - 1] == "main" || wordBits[wordBits.size() - 1] == "IMPLEMENT_APP")
+ {
+ this->mainFile = file;
+ }
}
+ fileStream.close();
}
- fileStream.close();
+ this->children.push_back(file);
+ }
+ else
+ {
+ modelCDMFile* file = new modelCDMFile(this, this->path + CDMUtilities::SLASH + stdfileName, stdfileName, this->level + 1);
+ this->children.push_back(file);
}
-
- this->children.push_back(file);
}
}
found = false;
//std::cout << "searching..." << CMfile << std::endl;
- expression = boost::regex("^\\h*INCLUDE_DIRECTORIES([\\s]|#[^\\n]*\\n)*\\(([\\s]|#[^\\n]*\\n)*([\\.\\/\\$\\{\\}\\w\\d]+|\"(?:[^\"\\\\]|\\\\.)*\")??(([\\s]|#[^\\n]*\\n)+([\\.\\/\\$\\{\\}\\w\\d]+|\"(?:[^\"\\\\]|\\\\.)*\"))*([\\s]|#[^\\n]*\\n)*\\)");
+ expression = boost::regex("^\\h*INCLUDE_DIRECTORIES([\\s]|#[^\\n]*\\n)*\\(([\\s]|#[^\\n]*\\n)*([\\.\\/\\$\\{\\}\\w\\d]+|\"(?:[^\"\\\\]|\\\\.)*\"){0,1}?(([\\s]|#[^\\n]*\\n)+([\\.\\/\\$\\{\\}\\w\\d]+|\"(?:[^\"\\\\]|\\\\.)*\"))*([\\s]|#[^\\n]*\\n)*\\)");
start = CMfile.begin();
end = CMfile.end();
if(boost::regex_search(start, end, what, expression, flags))