diff options
-rw-r--r-- | Source/CursesDialog/ccmake.cxx | 9 | ||||
-rw-r--r-- | Source/CursesDialog/cmCursesMainForm.cxx | 9 | ||||
-rw-r--r-- | Source/CursesDialog/cmCursesMainForm.h | 2 | ||||
-rw-r--r-- | Source/cmake.cxx | 2 |
4 files changed, 15 insertions, 7 deletions
diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index 7d9e348..5cc5db6 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -124,10 +124,11 @@ int main(int argc, char** argv) cmCursesForm::CurrentForm = myform; myform->InitializeUI(); - myform->RunCMake(false); - - myform->Render(1, 1, x, y); - myform->HandleInput(); + if (myform->RunCMake(false) == 0 ) + { + myform->Render(1, 1, x, y); + myform->HandleInput(); + } // Need to clean-up better curses_clear(); diff --git a/Source/CursesDialog/cmCursesMainForm.cxx b/Source/CursesDialog/cmCursesMainForm.cxx index e8e9199..503dc58 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -504,7 +504,7 @@ void cmCursesMainForm::UpdateStatusBar() pos_form_cursor(m_Form); } -void cmCursesMainForm::RunCMake(bool generateMakefiles) +int cmCursesMainForm::RunCMake(bool generateMakefiles) { int x,y; @@ -557,6 +557,12 @@ void cmCursesMainForm::RunCMake(bool generateMakefiles) CurrentForm = msgs; msgs->Render(1,1,x,y); msgs->HandleInput(); + // If they typed the wrong source directory, we report + // an error and exit + if ( retVal == -2 ) + { + return retVal; + } CurrentForm = this; this->Render(1,1,x,y); } @@ -565,6 +571,7 @@ void cmCursesMainForm::RunCMake(bool generateMakefiles) this->InitializeUI(); this->Render(1, 1, x, y); + return 0; } void cmCursesMainForm::AddError(const char* message, const char* title) diff --git a/Source/CursesDialog/cmCursesMainForm.h b/Source/CursesDialog/cmCursesMainForm.h index 72238e8..3a15f58 100644 --- a/Source/CursesDialog/cmCursesMainForm.h +++ b/Source/CursesDialog/cmCursesMainForm.h @@ -85,7 +85,7 @@ public: /** * Used to run cmake. */ - void RunCMake(bool generateMakefiles); + int RunCMake(bool generateMakefiles); protected: cmCursesMainForm(const cmCursesMainForm& from); diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 097b1be..b512d92 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -370,7 +370,7 @@ int cmake::Generate(const std::vector<std::string>& args, bool buildMakefiles) message += cacheStart; message += "\nRe-run cmake with a different source directory."; cmSystemTools::Error(message.c_str()); - return -1; + return -2; } } mf.AddCacheDefinition("CMAKE_HOME_DIRECTORY", mf.GetHomeDirectory(), |