#include <creaWx.h>
#include <wx/dirdlg.h>
+#include <stdlib.h> // for getenv
+
class myApp : public wxApp
{
public:
CREA_WXMAIN_WITH_CONSOLE
bool myApp::OnInit( )
-{
+{
wxApp::OnInit();
#ifdef __WXGTK__
//See http://www.wxwindows.org/faqgtk.htm#locale
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"),
_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;
+
+char * install_Dir = getenv("bbtk_DIR");
+std::string execGUICreateNewPackage(install_Dir);
+execGUICreateNewPackage = "bbi " + execGUICreateNewPackage;
+
#if(_WIN32)
- std::string command("creaNewProject.bat ");
+ 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
+ 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());
+ }
+ else
+ {
+ wxString err(_T("An error occured while running '"));
+ err += crea::std2wx(command) + _T("'");
+ wxMessageBox(err,_T("creaNewProject"),wxOK | wxICON_ERROR);
+ }
+
#endif
- command += crea::wx2std(dir) + " " + crea::wx2std(name);
-
- if ( ! system ( command.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;
}