X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FcreaNewProject%2FcreaNewProject.cpp;h=265d432b4e031c707ffc49d1b63dd5ca5ce53595;hb=b5137f0744f50f51113528ad7785d6a3c1543131;hp=f66f2a54006d6c6e867fd9558f4ddd112a3d73ea;hpb=a19dd400a71fc95b4f264aa9f1d6f976717a22d5;p=crea.git diff --git a/appli/creaNewProject/creaNewProject.cpp b/appli/creaNewProject/creaNewProject.cpp index f66f2a5..265d432 100644 --- a/appli/creaNewProject/creaNewProject.cpp +++ b/appli/creaNewProject/creaNewProject.cpp @@ -1,5 +1,7 @@ #include #include +#include // for getenv + class myApp : public wxApp { public: @@ -11,7 +13,7 @@ IMPLEMENT_APP(myApp); CREA_WXMAIN_WITH_CONSOLE bool myApp::OnInit( ) -{ +{ wxApp::OnInit(); #ifdef __WXGTK__ //See http://www.wxwindows.org/faqgtk.htm#locale @@ -20,7 +22,7 @@ bool myApp::OnInit( ) wxInitAllImageHandlers(); wxString dir = wxDirSelector(_T("Select directory in which to create the project"), _T(""), wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST ); - + if (dir.IsEmpty()) return false; wxString name = wxGetTextFromUser(_T("Enter project name"), @@ -28,35 +30,86 @@ bool myApp::OnInit( ) _T("New")); if (name.IsEmpty()) return false; + wxString description = wxGetTextFromUser(_T("Enter Package Description (html format)"), + _T("create New Package"), + _T("NO_DESCRIPTION")); + if (description.IsEmpty()) return false; + #if(_WIN32) - std::string command("creaNewProject.bat "); - std::string command1("creaSed.exe "); + // \TODO rewrite, according to new trick // JPR + + char * install_Dir = getenv("bbtk_DIR"); + std::string execGUICreateNewPackage(install_Dir); + execGUICreateNewPackage = "bbi " + execGUICreateNewPackage; + + std::string command("creaNewProject.bat "); + std::string command1("creaSed.exe "); std::string command2("del "); + + command += "\"" + crea::wx2std(dir) + "\" \"" + crea::wx2std(name) + "\""; + command1 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\" " + "NameOfTheProject " + crea::wx2std(name) + "> \"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt\""; + command2 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\""; + if ( ! system ( command.c_str() ) ) + { + system ( command1.c_str() ); + system ( command2.c_str() ); + wxMessageBox(_T("New Project created !"),_T("creaNewProject"), + wxOK | wxICON_INFORMATION); + + // Create a Package at the same time. JPR + + /// \TODO rewrite, according to new trick // JPR + execGUICreateNewPackage += "\..\..\..\share\bbtk\bbs\toolsbbtk\appli\GUICreatePackage.bbs"; + system(execGUICreateNewPackage.c_str()); + } + else + { + wxString err(_T("An error occured while running '")); + err += crea::std2wx(command) + _T("'"); + wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR); + } + +// ------ LINUX / MacOS + #else - std::string command("creaNewProject.sh "); + std::string command("creaNewProject.sh "); + command += "\"" + crea::wx2std(dir) + "\"" +" " + crea::wx2std(name); + + if ( ! system ( command.c_str() ) ) + { + wxMessageBox(_T("New Project created !"),_T("creaNewProject"), + wxOK | wxICON_INFORMATION); + + // Create a Package at the same time. JPR + + //execGUICreateNewPackage += "/../../../share/bbtk/bbs/toolsbbtk/appli/GUICreatePackage.bbs"; + //system(execGUICreateNewPackage.c_str()); + + // or, better, new trick : + // bbCreatePackage nomDirectory nomPackage author Description + + char *author = getenv("USER"); + std::string nomDirectory = crea::wx2std(dir) + "/" + crea::wx2std(name); + std::string nomPackageDirectory = nomDirectory + "/" + "bbtk_" + crea::wx2std(name) + "_PKG"; + + std::string bbCreatePackage("bbCreatePackage "); + bbCreatePackage += nomDirectory + " " + crea::wx2std(name) + " " + author + " " + crea::wx2std(description); + system (bbCreatePackage.c_str()); + + std::string add; + add = "echo 'ADD_SUBDIRECTORY(bbtk_" + crea::wx2std(name) + "_PKG)' >> " + nomDirectory + "/CMakeLists.txt"; + //std::cout << add << std::endl; + system(add.c_str()); + + } + else + { + wxString err(_T("An error occured while running '")); + err += crea::std2wx(command) + _T("'"); + wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR); + } + #endif -<<<<<<< creaNewProject.cpp - command += "\"" + crea::wx2std(dir) + "\"" +" " + crea::wx2std(name); -======= - command += "\"" + crea::wx2std(dir) + "\" \"" + crea::wx2std(name) + "\""; - command1 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\" " + "PROJECT_NAME " + crea::wx2std(name) + "> \"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt\""; - command2 += "\"" + crea::wx2std(dir)+"\\"+crea::wx2std(name)+"\\CMakeLists.txt.in\""; ->>>>>>> 1.3 - - if ( ! system ( command.c_str() ) ) - { - - system ( command1.c_str() ); - system ( command2.c_str() ); - wxMessageBox(_T("Done !"),_T("creaNewProject"), - wxOK | wxICON_INFORMATION); - } - else - { - wxString err(_T("An error occured while running '")); - err += crea::std2wx(command) + _T("'"); - wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR); - } return false; }