summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/CursesDialog/ccmake.cxx9
-rw-r--r--Source/CursesDialog/cmCursesMainForm.cxx9
-rw-r--r--Source/CursesDialog/cmCursesMainForm.h2
-rw-r--r--Source/cmake.cxx2
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(),