#include <fstream>
#include "CDMUtilities.h"
+#include "modelCDMProject.h"
modelCDMMain::modelCDMMain()
{
- //TODO: implement method
+ this->project = NULL;
}
modelCDMMain::~modelCDMMain()
{
- //TODO: implement method
+ if(project != NULL)
+ {
+ delete this->project;
+ this->project = NULL;
+ }
}
-const modelCDMProject* modelCDMMain::GetProject() const
+modelCDMProject* modelCDMMain::GetProject() const
{
- //TODO: implement method
return this->project;
}
std::string locationFixed = CDMUtilities::fixPath(location);
std::cout << "Opening path: "<< locationFixed << std::endl;
- //TODO: create Project given the source folder
-
+ //creates project in disk
#if(_WIN32)
std::string command("creaNewProject.bat ");
command += "\"" + locationFixed + "\" \"" + name + "\"";
command1 += "\"" + locationFixed +"\\"+name+"\\CMakeLists.txt.in\" " + "NameOfTheProject " + name + "> \"" + locationFixed + "\\" + name + "\\CMakeLists.txt\"";
command2 += "\"" + locationFixed +"\\"+name+"\\CMakeLists.txt.in\"";
- if ( ! system ( command.c_str() ) )
- {
- system ( command1.c_str() );
- system ( command2.c_str() );
-
- // Create a Package at the same time. JPR
- char *author = author.c_str();
- std::string nomDirectory = locationFixed + "\\" + name;
- std::string nomPackageDirectory = nomDirectory + "\\" + "bbtk_" + name + "_PKG";
- std::string bbCreatePackage("bbCreatePackage ");
- bbCreatePackage += nomDirectory + " " + name + " " + author + " " + description;
- system (bbCreatePackage.c_str());
- std::string add;
- add = "echo ADD_SUBDIRECTORY(bbtk_" + name + "_PKG) >> " + nomDirectory + "/CMakeLists.txt";
- system(add.c_str());
- }
- else
+
+
+ if (system (command.c_str()))
{
result = new std::string("An error occured while running '" + command + "'.");
return false;
}
+ system ( command1.c_str() );
+ system ( command2.c_str() );
+
+ char *author = author.c_str();
+ std::string nomDirectory = locationFixed + "\\" + name;
+ std::string nomPackageDirectory = nomDirectory + "\\" + "bbtk_" + name + "_PKG";
+ std::string bbCreatePackage("bbCreatePackage ");
+ bbCreatePackage += nomDirectory + " " + name + " " + author + " " + description;
+ system (bbCreatePackage.c_str());
+ std::string add;
+ add = "echo ADD_SUBDIRECTORY(bbtk_" + name + "_PKG) >> " + nomDirectory + "/CMakeLists.txt";
+ system(add.c_str());
+
+ this->project = new modelCDMProject(nomDirectory);
+
#else
// ------ LINUX / MacOS
std::string command("creaNewProject.sh ");
command += "\"" + locationFixed + "\"" +" " + name;
- std::cout << "executing " << command << std::endl;
- if ( ! system ( command.c_str() ) )
- {
- std::string nomDirectory = locationFixed + "/" + name;
- std::string nomPackageDirectory = nomDirectory + "/" + "bbtk_" + name + "_PKG";
-
- std::string bbCreatePackage("bbCreatePackage ");
- bbCreatePackage += nomDirectory + " " + name + " " + author + " " + description;
- std::cout << "executing " << bbCreatePackage << std::endl;
- system (bbCreatePackage.c_str());
-
- std::string add;
- add = "echo 'ADD_SUBDIRECTORY(bbtk_" + name + "_PKG)' >> " + nomDirectory + "/CMakeLists.txt";
- //std::cout << add << std::endl;
- std::cout << "executing " << add << std::endl;
- system(add.c_str());
- }
- else
+ //std::cout << "executing " << command << std::endl;
+ if (system ( command.c_str() ) )
{
result = new std::string("An error occured while running '" + command + "'.");
return false;
}
-#endif
+ std::string nomDirectory = locationFixed + "/" + name;
+ std::string nomPackageDirectory = nomDirectory + "/" + "bbtk_" + name + "_PKG";
+
+ std::string bbCreatePackage("bbCreatePackage ");
+ bbCreatePackage += nomDirectory + " " + name + " " + author + " " + description;
+ //std::cout << "executing " << bbCreatePackage << std::endl;
+ system (bbCreatePackage.c_str());
+
+ std::string add;
+ add = "echo 'ADD_SUBDIRECTORY(bbtk_" + name + "_PKG)' >> " + nomDirectory + "/CMakeLists.txt";
+
+ //std::cout << "executing " << add << std::endl;
+ system(add.c_str());
+
+ this->project = new modelCDMProject(nomDirectory);
+#endif
return true;
}
std::string*& result
)
{
- std::cout << "Open selection path: "<< path << std::endl;
+ //std::cout << "Open selection path: "<< path << std::endl;
//get fixed path
std::string pathFixed = CDMUtilities::fixPath(path);
std::cout << "Opening path: "<< pathFixed << std::endl;
readFile.ignore();
getline(readFile, word, '\n');
pathBuild = pathFixed;
- pathFixed = word;
+ pathFixed = CDMUtilities::fixPath(word);
isBinary = true;
}
}
while(!isSource && !readFile.eof())
{
- std::getline(readFile,word,'\n');
- int pos = word.find("PROJECT");
- if(pos != std::string::npos)
+ std::getline(readFile,word,'(');
+ std::vector<std::string> wordBits;
+ CDMUtilities::splitter::split(wordBits,word," (\n",CDMUtilities::splitter::no_empties);
+
+ if(wordBits[wordBits.size()-1] == "PROJECT")
{
- pathSource = pathFixed;
isSource = true;
+ pathSource = pathFixed;
}
}
readFile.close();
//if is source folder
if(isSource)
{
- std::cout << "Project sources at: " << pathSource;
+ std::cout << "Project sources at: " << pathSource << std::endl;
if(isBinary)
{
- std::cout << ", and built in: " << pathBuild;
+ std::cout << ", and built in: " << pathBuild << std::endl;
+ this->project = new modelCDMProject(pathSource, pathBuild);
+ }
+ else
+ {
+ this->project = new modelCDMProject(pathSource);
}
- std::cout << std::endl;
}
else
{
return false;
}
- //TODO: create Project given the source folder
return true;
}