Skip to content
Snippets Groups Projects
Commit 306fc9ea authored by Brad King's avatar Brad King
Browse files

ENH: Improved error messages when source tree does not have a CMakeLists.txt...

ENH: Improved error messages when source tree does not have a CMakeLists.txt file.  No matter how many cases we check, there always seems to be a user that finds a case that gives a confusing error message...
parent 403f220d
No related branches found
No related tags found
No related merge requests found
......@@ -392,7 +392,24 @@ void cmake::SetDirectoriesFromFile(const char* arg)
listPath = cmSystemTools::GetFilenamePath(fullPath.c_str());
}
}
else
{
// Specified file or directory does not exist. Try to set things
// up to produce a meaningful error message.
std::string fullPath = cmSystemTools::CollapseFullPath(arg);
std::string name = cmSystemTools::GetFilenameName(fullPath.c_str());
name = cmSystemTools::LowerCase(name);
if(name == "cmakecache.txt" || name == "cmakelists.txt")
{
argIsFile = true;
listPath = cmSystemTools::GetFilenamePath(fullPath.c_str());
}
else
{
listPath = fullPath;
}
}
// If there is a CMakeCache.txt file, use its settings.
if(cachePath.length() > 0)
{
......@@ -880,9 +897,22 @@ int cmake::DoPreConfigureChecks()
if(!cmSystemTools::FileExists(srcList.c_str()))
{
cmOStringStream err;
err << "The source directory \"" << this->GetHomeDirectory()
<< "\" does not appear to contain CMakeLists.txt.\n"
<< "Specify --help for usage, or press the help button on the CMake GUI.";
if(cmSystemTools::FileIsDirectory(this->GetHomeDirectory()))
{
err << "The source directory \"" << this->GetHomeDirectory()
<< "\" does not appear to contain CMakeLists.txt.\n";
}
else if(cmSystemTools::FileExists(this->GetHomeDirectory()))
{
err << "The source directory \"" << this->GetHomeDirectory()
<< "\" is a file, not a directory.\n";
}
else
{
err << "The source directory \"" << this->GetHomeDirectory()
<< "\" does not exist.\n";
}
err << "Specify --help for usage, or press the help button on the CMake GUI.";
cmSystemTools::Error(err.str().c_str());
return -2;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment