return this->lib;
}
+std::string modelCDMProject::GetBuildInstruction() const
+{
+ std::string makeComm = "make -C \"" + this->buildPath + "\""; /*> \"" + this->buildPath + CDMUtilities::SLASH + "building.log\" 2>&1";*/
+ return makeComm;
+}
+
bool modelCDMProject::SetVersion(const std::string& version, std::string*& result)
{
return true;
}
-bool modelCDMProject::Build(std::string*& result)
+bool modelCDMProject::Build(std::string*& result, const std::string& line)
{
//TODO: adjust for windows and mac
#ifdef _WIN32
return false;
}
//create make command
- std::string makeComm = "make -C \"" + this->buildPath + "\" > \"" + this->buildPath + CDMUtilities::SLASH + "building.log\" 2>&1";
+ std::string makeComm = "gnome-terminal -e \"bash -c \\\"";
+ for (int i = 0; i < line.size(); i++)
+ {
+ if(line[i] == '"')
+ {
+ makeComm+="\\\\\\\"";
+ }
+ else if(line[i] == '\\')
+ {
+ makeComm+="\\\\\\\\";
+ }
+ else
+ {
+ makeComm.push_back(line[i]);
+ }
+ }
+ makeComm += "; echo -e '\\a'; bash";
+ makeComm += "\\\"\"";
+
std::cout << "executing '" << makeComm << "'" << std::endl;
//execute make command
if(system(makeComm.c_str()))
if(system(plugComm.c_str()))
{
//if there was an error then report it
- result = new std::string("There was an error plugging the packages of the project, please check the \"plugging.log\" file located in the build folder to read more about the problem.");
+ result = new std::string("There was an error plugging the packages of the project, please check the console to read more about the problem.");
return false;
}
#endif
*/
modelCDMLib* GetLib() const;
+ /**
+ * Retrieves the default make instruction to compile the project.
+ * @return The make instruction to compile.
+ */
+ std::string GetBuildInstruction() const;
+
//Setters
/**
* @param result Result message for building the project.
* @return if any of the commands cannot be executed it return false.
*/
- bool Build(std::string*& result);
+ bool Build(std::string*& result, const std::string& line);
/**
* Launches in console the bbPlugPackage command to connect the project to the .bbtk folder in the hard drive.
//compile project
void wxCDMProjectActionsPanel::OnBtnBuildProject(wxCommandEvent& event)
{
- std::string* result;
- //wxProgressDialog* loadBar = new wxProgressDialog(wxT("Compiling"), wxT("Please wait while the compilation is executing..."), 100, this);
- //loadBar->Pulse();
- if(!this->project->Build(result))
+ //get author from user
+ wxTextEntryDialog* buildDlg = new wxTextEntryDialog(
+ this,
+ wxT("Enter the compilation instruction:"),
+ wxT("Project Compilation- creaDevManager"),
+ crea::std2wx(this->project->GetBuildInstruction()),
+ wxTE_MULTILINE | wxOK | wxCANCEL
+ );
+
+ if (buildDlg->ShowModal() == wxID_OK)
{
- //loadBar->Destroy();
- wxMessageBox(crea::std2wx(result->c_str()), wxT("Project Compilation - Error!"));
- return;
+ std::string buildDlgStr = crea::wx2std(buildDlg->GetValue());
+ //check name
+ if (buildDlgStr != "")
+ {
+ std::string* result;
+ //wxProgressDialog* loadBar = new wxProgressDialog(wxT("Compiling"), wxT("Please wait while the compilation is executing..."), 100, this);
+ //loadBar->Pulse();
+ if(!this->project->Build(result, buildDlgStr))
+ {
+ //loadBar->Destroy();
+ wxMessageBox(crea::std2wx(result->c_str()), wxT("Project Compilation - Error!"));
+ return;
+ }
+ //loadBar->Destroy();
+ //wxMessageBox(crea::std2wx("The compilation was executed successfully. Please check the \"building.log\" file located in the build folder to check the compilation result."), wxT("Project Compilation"));
+ }
}
- //loadBar->Destroy();
- wxMessageBox(crea::std2wx("The compilation was executed successfully. Please check the \"building.log\" file located in the build folder to check the compilation result."), wxT("Project Compilation"));
}
-
//plug packages
void wxCDMProjectActionsPanel::OnBtnConnectProject(wxCommandEvent& event)
{
std::string* result;
if(!this->project->Connect(result))
- {
- wxMessageBox(crea::std2wx(result->c_str()), wxT("Plug Packages - Error!"));
- return;
- }
- wxMessageBox(crea::std2wx("The connection was executed successfully. Please check the \"plugging.log\" file located in the build folder to check the compilation result."), wxT("Plug Package"));
+ {
+ wxMessageBox(crea::std2wx(result->c_str()), wxT("Plug Packages - Error!"));
+ return;
+ }
+ wxMessageBox(crea::std2wx("The connection was executed successfully. Please check the \"plugging.log\" file located in the build folder to check the compilation result."), wxT("Plug Package"));
}