X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2FcreaNewProject%2FcreaNewProject.cpp;h=0b2d98e3fba0fbbef8683e1e28b0108e2bf2435d;hb=3ef49ba6daedb975233f0abb6dadacc5517f5567;hp=2eeea9521c98c65237ac2eba8c4382b2fad47fe8;hpb=2602172bf86e48d943e08979669e8d34232c1394;p=crea.git diff --git a/appli/creaNewProject/creaNewProject.cpp b/appli/creaNewProject/creaNewProject.cpp index 2eeea95..0b2d98e 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: @@ -28,11 +30,24 @@ 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; + + wxString authorWX = wxGetTextFromUser(_T("Author (One word)"), + _T("Author"), + _T("Author_Name")); + if (description.IsEmpty()) return false; + + + #if(_WIN32) + 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\""; @@ -40,32 +55,68 @@ bool myApp::OnInit( ) { system ( command1.c_str() ); system ( command2.c_str() ); - wxMessageBox(_T("Done !"),_T("creaNewProject"), + + // Create a Package at the same time. JPR + char *author = (char*) (authorWX.mb_str()) ; + 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"; + system(add.c_str()); + + wxMessageBox(_T("New Project created !"),_T("creaNewProject"), wxOK | wxICON_INFORMATION); - } - else - { + } else { wxString err(_T("An error occured while running '")); err += crea::std2wx(command) + _T("'"); - wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR); - } + wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR); + } + +// ------ LINUX / MacOS + #else std::string command("creaNewProject.sh "); command += "\"" + crea::wx2std(dir) + "\"" +" " + crea::wx2std(name); + if ( ! system ( command.c_str() ) ) { - wxMessageBox(_T("Done !"),_T("creaNewProject"), + 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 + +//EED char *author = getenv("USER"); + char *author = (char*) (authorWX.mb_str()) ; + 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 - { + else + { wxString err(_T("An error occured while running '")); err += crea::std2wx(command) + _T("'"); - wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR); + wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR); } - -#endif +#endif return false; }