ENH: remove abort calls and replace with an IssueMessage INTERANL_ERROR, better to not crash on the end user.
This commit is contained in:
parent
8bf388109d
commit
5ab6c0f0ed
|
@ -1915,7 +1915,10 @@ cmLocalUnixMakefileGenerator3
|
||||||
// Make sure we never hit this old case.
|
// Make sure we never hit this old case.
|
||||||
if(source.GetProperty("MACOSX_PACKAGE_LOCATION"))
|
if(source.GetProperty("MACOSX_PACKAGE_LOCATION"))
|
||||||
{
|
{
|
||||||
abort();
|
std::string msg = "MACOSX_PACKAGE_LOCATION set on source file: ";
|
||||||
|
msg += source.GetFullPath();
|
||||||
|
this->GetMakefile()->IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start with the target directory.
|
// Start with the target directory.
|
||||||
|
|
|
@ -295,6 +295,11 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
|
||||||
isError = true;
|
isError = true;
|
||||||
msg << "CMake Error:";
|
msg << "CMake Error:";
|
||||||
}
|
}
|
||||||
|
else if(t == cmake::INTERNAL_ERROR)
|
||||||
|
{
|
||||||
|
isError = true;
|
||||||
|
msg << "CMake Internal Error, please report a bug: ";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
msg << "CMake Warning";
|
msg << "CMake Warning";
|
||||||
|
@ -2029,7 +2034,9 @@ const char *cmMakefile::ExpandVariablesInString(std::string& source,
|
||||||
{
|
{
|
||||||
// This case should never be called. At-only is for
|
// This case should never be called. At-only is for
|
||||||
// configure-file/string which always does no escapes.
|
// configure-file/string which always does no escapes.
|
||||||
abort();
|
this->IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
"ExpandVariablesInString @ONLY called "
|
||||||
|
"on something with escapes.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store an original copy of the input.
|
// Store an original copy of the input.
|
||||||
|
|
|
@ -173,7 +173,13 @@ bool cmSourceFileLocation::Matches(cmSourceFileLocation const& loc)
|
||||||
// Each side has a directory relative to a different location.
|
// Each side has a directory relative to a different location.
|
||||||
// This can occur when referencing a source file from a different
|
// This can occur when referencing a source file from a different
|
||||||
// directory. This is not yet allowed.
|
// directory. This is not yet allowed.
|
||||||
abort();
|
this->Makefile->
|
||||||
|
IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
"Matches error: Each side has a directory relative to a different"
|
||||||
|
" location. This can occur when referencing a "
|
||||||
|
"source file from a different directory. "
|
||||||
|
"This is not yet allowed.");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
else if(this->AmbiguousDirectory)
|
else if(this->AmbiguousDirectory)
|
||||||
{
|
{
|
||||||
|
|
|
@ -643,7 +643,11 @@ void cmTarget::SetType(TargetType type, const char* name)
|
||||||
type == cmTarget::INSTALL_PROGRAMS ||
|
type == cmTarget::INSTALL_PROGRAMS ||
|
||||||
type == cmTarget::INSTALL_DIRECTORY)
|
type == cmTarget::INSTALL_DIRECTORY)
|
||||||
{
|
{
|
||||||
abort();
|
this->Makefile->
|
||||||
|
IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
"SetType called on cmTarget for INSTALL_FILES, "
|
||||||
|
"INSTALL_PROGRAMS, or INSTALL_DIRECTORY ");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
// only add dependency information for library targets
|
// only add dependency information for library targets
|
||||||
this->TargetTypeValue = type;
|
this->TargetTypeValue = type;
|
||||||
|
@ -2099,7 +2103,11 @@ std::string cmTarget::NormalGetRealName(const char* config)
|
||||||
// enforcement of the limited imported target API.
|
// enforcement of the limited imported target API.
|
||||||
if(this->IsImported())
|
if(this->IsImported())
|
||||||
{
|
{
|
||||||
abort();
|
std::string msg = "NormalGetRealName called on imported target: ";
|
||||||
|
msg += this->GetName();
|
||||||
|
this->GetMakefile()->
|
||||||
|
IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(this->GetType() == cmTarget::EXECUTABLE)
|
if(this->GetType() == cmTarget::EXECUTABLE)
|
||||||
|
@ -2424,7 +2432,11 @@ void cmTarget::GetLibraryNamesInternal(std::string& name,
|
||||||
// enforcement of the limited imported target API.
|
// enforcement of the limited imported target API.
|
||||||
if(this->IsImported())
|
if(this->IsImported())
|
||||||
{
|
{
|
||||||
abort();
|
std::string msg = "GetLibraryNamesInternal called on imported target: ";
|
||||||
|
msg += this->GetName();
|
||||||
|
this->Makefile->IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
msg.c_str());
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Construct the name of the soname flag variable for this language.
|
// Construct the name of the soname flag variable for this language.
|
||||||
|
@ -2553,7 +2565,11 @@ void cmTarget::GetExecutableNamesInternal(std::string& name,
|
||||||
// enforcement of the limited imported target API.
|
// enforcement of the limited imported target API.
|
||||||
if(this->IsImported())
|
if(this->IsImported())
|
||||||
{
|
{
|
||||||
abort();
|
std::string msg = "GetExecutableNamesInternal called on imported target: ";
|
||||||
|
msg += this->GetName();
|
||||||
|
this->GetMakefile()->
|
||||||
|
IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// This versioning is supported only for executables and then only
|
// This versioning is supported only for executables and then only
|
||||||
|
@ -2828,11 +2844,21 @@ const char* cmTarget::GetAndCreateOutputDir(bool implib, bool create)
|
||||||
if(implib &&
|
if(implib &&
|
||||||
!this->Makefile->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX"))
|
!this->Makefile->GetDefinition("CMAKE_IMPORT_LIBRARY_SUFFIX"))
|
||||||
{
|
{
|
||||||
abort();
|
std::string msg = "GetAndCreateOutputDir, imlib set but there is no "
|
||||||
|
"CMAKE_IMPORT_LIBRARY_SUFFIX for target: ";
|
||||||
|
msg += this->GetName();
|
||||||
|
this->GetMakefile()->
|
||||||
|
IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
msg.c_str());
|
||||||
}
|
}
|
||||||
if(implib && !this->DLLPlatform)
|
if(implib && !this->DLLPlatform)
|
||||||
{
|
{
|
||||||
abort();
|
std::string msg = "implib set for platform that does not "
|
||||||
|
" support DLL's for target: ";
|
||||||
|
msg += this->GetName();
|
||||||
|
this->GetMakefile()->
|
||||||
|
IssueMessage(cmake::INTERNAL_ERROR,
|
||||||
|
msg.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Select whether we are constructing the directory for the main
|
// Select whether we are constructing the directory for the main
|
||||||
|
|
|
@ -61,6 +61,7 @@ class cmake
|
||||||
enum MessageType
|
enum MessageType
|
||||||
{ AUTHOR_WARNING,
|
{ AUTHOR_WARNING,
|
||||||
FATAL_ERROR,
|
FATAL_ERROR,
|
||||||
|
INTERNAL_ERROR,
|
||||||
MESSAGE,
|
MESSAGE,
|
||||||
WARNING,
|
WARNING,
|
||||||
LOG
|
LOG
|
||||||
|
|
Loading…
Reference in New Issue