diff --git a/Source/CursesDialog/ccmake.cxx b/Source/CursesDialog/ccmake.cxx index 5218205be..03fdb3fa0 100644 --- a/Source/CursesDialog/ccmake.cxx +++ b/Source/CursesDialog/ccmake.cxx @@ -189,8 +189,11 @@ int main(int argc, char** argv) cmCursesForm::CurrentForm = myform; myform->InitializeUI(); - myform->Render(1, 1, x, y); - myform->HandleInput(); + if ( myform->Configure(1) == 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 546dc32bb..283c43d80 100644 --- a/Source/CursesDialog/cmCursesMainForm.cxx +++ b/Source/CursesDialog/cmCursesMainForm.cxx @@ -624,9 +624,8 @@ void cmCursesMainForm::UpdateProgress(const char *msg, float prog, void* vp) refresh(); } -int cmCursesMainForm::Configure() +int cmCursesMainForm::Configure(int noconfigure) { - int xi,yi; getmaxyx(stdscr, yi, xi); @@ -648,7 +647,19 @@ int cmCursesMainForm::Configure() // run the generate process m_OkToGenerate = true; - int retVal = this->m_CMakeInstance->Configure(); + int retVal; + if ( noconfigure ) + { + retVal = this->m_CMakeInstance->DoPreConfigureChecks(); + if ( retVal > 0 ) + { + retVal = 0; + } + } + else + { + retVal = this->m_CMakeInstance->Configure(); + } this->m_CMakeInstance->SetProgressCallback(0, 0); keypad(stdscr,TRUE); /* Use key symbols as diff --git a/Source/CursesDialog/cmCursesMainForm.h b/Source/CursesDialog/cmCursesMainForm.h index 4932f5cb5..9cfce3d84 100644 --- a/Source/CursesDialog/cmCursesMainForm.h +++ b/Source/CursesDialog/cmCursesMainForm.h @@ -89,9 +89,10 @@ public: virtual void AddError(const char* message, const char* title); /** - * Used to do a configure. + * Used to do a configure. If argument is specified, it does only the check + * and not configure. */ - int Configure(); + int Configure(int noconfigure=0); /** * Used to generate