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...
This commit is contained in:
parent
403f220d25
commit
306fc9ea96
|
@ -392,6 +392,23 @@ void cmake::SetDirectoriesFromFile(const char* arg)
|
||||||
listPath = cmSystemTools::GetFilenamePath(fullPath.c_str());
|
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 there is a CMakeCache.txt file, use its settings.
|
||||||
if(cachePath.length() > 0)
|
if(cachePath.length() > 0)
|
||||||
|
@ -880,9 +897,22 @@ int cmake::DoPreConfigureChecks()
|
||||||
if(!cmSystemTools::FileExists(srcList.c_str()))
|
if(!cmSystemTools::FileExists(srcList.c_str()))
|
||||||
{
|
{
|
||||||
cmOStringStream err;
|
cmOStringStream err;
|
||||||
err << "The source directory \"" << this->GetHomeDirectory()
|
if(cmSystemTools::FileIsDirectory(this->GetHomeDirectory()))
|
||||||
<< "\" does not appear to contain CMakeLists.txt.\n"
|
{
|
||||||
<< "Specify --help for usage, or press the help button on the CMake GUI.";
|
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());
|
cmSystemTools::Error(err.str().c_str());
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue