summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2003-08-26 19:06:52 (GMT)
committerBrad King <brad.king@kitware.com>2003-08-26 19:06:52 (GMT)
commit41445f67aca14217f5e786b25ed5665b26d45ca8 (patch)
tree79a6e937f774a1bd2670430a3b14c0b2b58515d4
parentc59cc5a542ca78cba2983d91b588ae1f7ee490dd (diff)
downloadCMake-41445f67aca14217f5e786b25ed5665b26d45ca8.zip
CMake-41445f67aca14217f5e786b25ed5665b26d45ca8.tar.gz
CMake-41445f67aca14217f5e786b25ed5665b26d45ca8.tar.bz2
BUG: Fixed crash of cmake -i when CMAKE_ROOT cannot be found. Made resulting error message cleaner.
-rw-r--r--Source/cmake.cxx11
-rw-r--r--Source/cmakemain.cxx3
-rw-r--r--Source/cmakewizard.cxx10
-rw-r--r--Source/cmakewizard.h2
4 files changed, 17 insertions, 9 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index c4c73dd..06370be 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -544,9 +544,10 @@ int cmake::AddCMakePaths(const char *arg0)
if (!cmSystemTools::FileExists(modules.c_str()))
{
// couldn't find modules
- cmSystemTools::Error("Could not find CMAKE_ROOT !!!\n",
- "Modules directory not in directory:\n",
- modules.c_str());
+ cmSystemTools::Error("Could not find CMAKE_ROOT !!!\n"
+ "CMake has most likely not been installed correctly.\n"
+ "Modules directory not found in\n",
+ cMakeRoot.c_str());
return 0;
}
this->m_CacheManager->AddCacheEntry
@@ -1058,6 +1059,10 @@ int cmake::Run(const std::vector<std::string>& args, bool noconfigure)
int cmake::Generate()
{
+ if(!m_GlobalGenerator)
+ {
+ return -1;
+ }
m_GlobalGenerator->Generate();
if(cmSystemTools::GetErrorOccuredFlag())
{
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 7a19d09..5833dd1 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -196,8 +196,7 @@ int do_cmake(int ac, char** av)
if (wiz)
{
cmakewizard wizard;
- wizard.RunWizard(args);
- return 0;
+ return wizard.RunWizard(args);
}
cmake cm;
cm.SetProgressCallback(updateProgress, 0);
diff --git a/Source/cmakewizard.cxx b/Source/cmakewizard.cxx
index f31d54b..f1c4fab 100644
--- a/Source/cmakewizard.cxx
+++ b/Source/cmakewizard.cxx
@@ -89,7 +89,7 @@ void cmakewizard::ShowMessage(const char* m)
-void cmakewizard::RunWizard(std::vector<std::string> const& args)
+int cmakewizard::RunWizard(std::vector<std::string> const& args)
{
m_ShowAdvanced = this->AskAdvanced();
cmSystemTools::DisableRunCommandOutput();
@@ -148,6 +148,10 @@ void cmakewizard::RunWizard(std::vector<std::string> const& args)
cachem->SaveCache(make.GetHomeOutputDirectory());
}
while(asked);
- make.Generate();
- this->ShowMessage("CMake complete, run make to build project.\n");
+ if(make.Generate() == 0)
+ {
+ this->ShowMessage("CMake complete, run make to build project.\n");
+ return 0;
+ }
+ return 1;
}
diff --git a/Source/cmakewizard.h b/Source/cmakewizard.h
index 21521da..1a9baa6 100644
--- a/Source/cmakewizard.h
+++ b/Source/cmakewizard.h
@@ -38,7 +38,7 @@ public:
* Run cmake in wizard mode. This will coninue to ask the user questions
* until there are no more entries in the cache.
*/
- void RunWizard(std::vector<std::string>const& args);
+ int RunWizard(std::vector<std::string>const& args);
private:
bool m_ShowAdvanced;