cmake: Add IssueMessage overload taking a single cmListFileContext.
Port appropriate clients to use it.
This commit is contained in:
parent
46656aa1fa
commit
8b4b9631f5
|
@ -14,6 +14,7 @@
|
|||
#include "cmSystemTools.h"
|
||||
#include "cmMakefile.h"
|
||||
#include "cmState.h"
|
||||
#include "cmLocalGenerator.h"
|
||||
|
||||
#include "cmCommandArgumentLexer.h"
|
||||
|
||||
|
@ -139,14 +140,14 @@ char* cmCommandArgumentParserHelper::ExpandVariable(const char* var)
|
|||
this->Makefile->GetHomeOutputDirectory()))
|
||||
{
|
||||
std::ostringstream msg;
|
||||
cmListFileBacktrace bt(this->Makefile->GetLocalGenerator());
|
||||
cmListFileContext lfc;
|
||||
lfc.FilePath = this->FileName;
|
||||
lfc.FilePath = this->Makefile->GetLocalGenerator()
|
||||
->Convert(this->FileName, cmLocalGenerator::HOME);
|
||||
|
||||
lfc.Line = this->FileLine;
|
||||
bt.Append(lfc);
|
||||
msg << "uninitialized variable \'" << var << "\'";
|
||||
this->Makefile->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
|
||||
msg.str(), bt);
|
||||
msg.str(), lfc);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
|
@ -249,19 +249,13 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
|
|||
std::string const& text) const
|
||||
{
|
||||
// Collect context information.
|
||||
cmLocalGenerator* localGen = this->GetLocalGenerator();
|
||||
if(this->CallStack.empty() && this->GetCMakeInstance()->GetIsInTryCompile())
|
||||
{
|
||||
localGen = 0;
|
||||
}
|
||||
cmListFileBacktrace backtrace(localGen);
|
||||
if(!this->CallStack.empty())
|
||||
{
|
||||
if((t == cmake::FATAL_ERROR) || (t == cmake::INTERNAL_ERROR))
|
||||
{
|
||||
this->CallStack.back().Status->SetNestedError(true);
|
||||
}
|
||||
backtrace = this->GetBacktrace();
|
||||
this->GetCMakeInstance()->IssueMessage(t, text, this->GetBacktrace());
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -278,12 +272,15 @@ void cmMakefile::IssueMessage(cmake::MessageType t,
|
|||
// command. Add whatever context information we have.
|
||||
lfc.FilePath = this->ListFileStack.back();
|
||||
}
|
||||
if(!this->CallStack.empty()
|
||||
|| !this->GetCMakeInstance()->GetIsInTryCompile())
|
||||
{
|
||||
lfc.FilePath = this->LocalGenerator->Convert(lfc.FilePath,
|
||||
cmLocalGenerator::HOME);
|
||||
}
|
||||
lfc.Line = 0;
|
||||
backtrace.Append(lfc);
|
||||
this->GetCMakeInstance()->IssueMessage(t, text, lfc);
|
||||
}
|
||||
|
||||
// Issue the message.
|
||||
this->GetCMakeInstance()->IssueMessage(t, text, backtrace);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
@ -1837,22 +1834,22 @@ void cmMakefile::LogUnused(const char* reason,
|
|||
if (this->WarnUnused)
|
||||
{
|
||||
std::string path;
|
||||
cmListFileBacktrace bt(this->GetLocalGenerator());
|
||||
cmListFileContext lfc;
|
||||
if (!this->CallStack.empty())
|
||||
{
|
||||
cmListFileContext file = this->GetExecutionContext();
|
||||
bt.Append(file);
|
||||
path = file.FilePath;
|
||||
lfc = this->GetExecutionContext();
|
||||
path = lfc.FilePath;
|
||||
}
|
||||
else
|
||||
{
|
||||
path = this->GetCurrentSourceDirectory();
|
||||
path += "/CMakeLists.txt";
|
||||
cmListFileContext lfc;
|
||||
lfc.FilePath = path;
|
||||
lfc.Line = 0;
|
||||
bt.Append(lfc);
|
||||
}
|
||||
lfc.FilePath = this->LocalGenerator->Convert(lfc.FilePath,
|
||||
cmLocalGenerator::HOME);
|
||||
|
||||
if (this->CheckSystemVars ||
|
||||
cmSystemTools::IsSubDirectory(path,
|
||||
this->GetHomeDirectory()) ||
|
||||
|
@ -1865,7 +1862,7 @@ void cmMakefile::LogUnused(const char* reason,
|
|||
msg << "unused variable (" << reason << ") \'" << name << "\'";
|
||||
this->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
|
||||
msg.str(),
|
||||
bt);
|
||||
lfc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2769,14 +2766,13 @@ cmake::MessageType cmMakefile::ExpandVariablesInStringNew(
|
|||
this->GetHomeOutputDirectory()))
|
||||
{
|
||||
std::ostringstream msg;
|
||||
cmListFileBacktrace bt(this->GetLocalGenerator());
|
||||
cmListFileContext lfc;
|
||||
lfc.FilePath = filename;
|
||||
lfc.FilePath = this->LocalGenerator
|
||||
->Convert(filename, cmLocalGenerator::HOME);
|
||||
lfc.Line = line;
|
||||
bt.Append(lfc);
|
||||
msg << "uninitialized variable \'" << lookup << "\'";
|
||||
this->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING,
|
||||
msg.str(), bt);
|
||||
msg.str(), lfc);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2552,6 +2552,24 @@ void cmake::IssueMessage(cmake::MessageType t, std::string const& text,
|
|||
displayMessage(t, msg);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmake::IssueMessage(cmake::MessageType t, std::string const& text,
|
||||
cmListFileContext const& lfc)
|
||||
{
|
||||
std::ostringstream msg;
|
||||
if (!this->PrintMessagePreamble(t, msg))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Add the immediate context.
|
||||
msg << (lfc.Line ? " at " : " in ") << lfc;
|
||||
|
||||
printMessageText(msg, text);
|
||||
|
||||
displayMessage(t, msg);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::vector<std::string> cmake::GetDebugConfigs()
|
||||
{
|
||||
|
|
|
@ -303,6 +303,9 @@ class cmake
|
|||
/** Display a message to the user. */
|
||||
void IssueMessage(cmake::MessageType t, std::string const& text,
|
||||
cmListFileBacktrace const& backtrace = cmListFileBacktrace(NULL));
|
||||
void IssueMessage(cmake::MessageType t, std::string const& text,
|
||||
cmListFileContext const& lfc);
|
||||
|
||||
///! run the --build option
|
||||
int Build(const std::string& dir,
|
||||
const std::string& target,
|
||||
|
|
Loading…
Reference in New Issue