X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcreaDevManagerLib%2FmodelCDMMain.cpp;fp=lib%2FcreaDevManagerLib%2FmodelCDMMain.cpp;h=e9df13ed38242c21fced54e9a490bdf032ea6ea5;hb=b10bc326c058168a64969db6c6a29b91a3136fb3;hp=307decac4eb4bbcc96bcf191523abf5b7dc0409b;hpb=c2943a0172ac4e3f6e2d7352913faa793887370a;p=crea.git diff --git a/lib/creaDevManagerLib/modelCDMMain.cpp b/lib/creaDevManagerLib/modelCDMMain.cpp index 307deca..e9df13e 100644 --- a/lib/creaDevManagerLib/modelCDMMain.cpp +++ b/lib/creaDevManagerLib/modelCDMMain.cpp @@ -34,8 +34,10 @@ #include "modelCDMMain.h" -#include -#include + +#include +#include +#include #include #include @@ -64,7 +66,75 @@ bool modelCDMMain::CreateProject( const std::string& author, const std::string& description) { - //TODO: implement method + std::cout << "Open selection path: "<< location << std::endl; + //get fixed location + std::string locationFixed = CDMUtilities::fixPath(location); + std::cout << "Opening path: "<< locationFixed << std::endl; + + //TODO: create Project given the source folder + +#if(_WIN32) + + std::string command("creaNewProject.bat "); + std::string command1("creaSed.exe "); + std::string command2("del "); + + 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 + { + result = new std::string("An error occured while running '" + command + "'."); + return false; + } + +#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 + { + result = new std::string("An error occured while running '" + command + "'."); + return false; + } + +#endif + + + return true; } @@ -73,11 +143,10 @@ bool modelCDMMain::OpenProject( std::string*& result ) { - std::cout << "Selection path: "<< path << std::endl; - + std::cout << "Open selection path: "<< path << std::endl; //get fixed path std::string pathFixed = CDMUtilities::fixPath(path); - std::cout << "Fixed selection path: "<< pathFixed << std::endl; + std::cout << "Opening path: "<< pathFixed << std::endl; //check if its binaries' folder bool isBinary = false; @@ -97,7 +166,6 @@ bool modelCDMMain::OpenProject( while(!isBinary && readFile >> word) { - //cout << word << endl; if(word == "CMAKE_SOURCE_DIR") { readFile >> word;