summaryrefslogtreecommitdiff
path: root/Source/cmMakefile.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-09-25 10:26:01 -0400
committerBrad King <brad.king@kitware.com>2020-09-28 09:49:08 -0400
commit07c1bdda3d42b255ddf9d7145e0aa952f87ee978 (patch)
treee66fc5b94eaabf4ea45c12cf460510aa961b27d0 /Source/cmMakefile.cxx
parent727ed0c403ad87c5cae84222d7d69b95b665b63f (diff)
downloadcmake-07c1bdda3d42b255ddf9d7145e0aa952f87ee978.tar.gz
cmMakefile: Replace GetExecutionFilePath with the top of the Backtrace
The execution file path stack and the backtrace stack are kept in sync. At all call sites of `GetExecutionFilePath`, the execution file path matches the path in the context at the top of the backtrace stack.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r--Source/cmMakefile.cxx16
1 files changed, 5 insertions, 11 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 2147026a8d..c8b2133d96 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -279,7 +279,7 @@ void cmMakefile::PrintCommandTrace(const cmListFileFunction& lff) const
// Check if current file in the list of requested to trace...
std::vector<std::string> const& trace_only_this_files =
this->GetCMakeInstance()->GetTraceSources();
- std::string const& full_path = this->GetExecutionFilePath();
+ std::string const& full_path = this->GetBacktrace().Top().FilePath;
std::string const& only_filename = cmSystemTools::GetFilenameName(full_path);
bool trace = trace_only_this_files.empty();
if (!trace) {
@@ -578,7 +578,7 @@ void cmMakefile::IncludeScope::EnforceCMP0011()
std::ostringstream w;
w << cmPolicies::GetPolicyWarning(cmPolicies::CMP0011) << "\n"
<< "The included script\n "
- << this->Makefile->GetExecutionFilePath() << "\n"
+ << this->Makefile->GetBacktrace().Top().FilePath << "\n"
<< "affects policy settings. "
<< "CMake is implying the NO_POLICY_SCOPE option for compatibility, "
<< "so the effects are applied to the including context.";
@@ -591,7 +591,7 @@ void cmMakefile::IncludeScope::EnforceCMP0011()
/* clang-format off */
e << cmPolicies::GetRequiredPolicyError(cmPolicies::CMP0011) << "\n"
<< "The included script\n "
- << this->Makefile->GetExecutionFilePath() << "\n"
+ << this->Makefile->GetBacktrace().Top().FilePath << "\n"
<< "affects policy settings, so it requires this policy to be set.";
/* clang-format on */
this->Makefile->IssueMessage(MessageType::FATAL_ERROR, e.str());
@@ -3328,16 +3328,10 @@ bool cmMakefile::IsLoopBlock() const
return !this->LoopBlockCounter.empty() && this->LoopBlockCounter.top() > 0;
}
-std::string const& cmMakefile::GetExecutionFilePath() const
-{
- assert(this->StateSnapshot.IsValid());
- return this->StateSnapshot.GetExecutionListFile();
-}
-
bool cmMakefile::ExpandArguments(std::vector<cmListFileArgument> const& inArgs,
std::vector<std::string>& outArgs) const
{
- std::string const& filename = this->GetExecutionFilePath();
+ std::string const& filename = this->GetBacktrace().Top().FilePath;
std::string value;
outArgs.reserve(inArgs.size());
for (cmListFileArgument const& i : inArgs) {
@@ -3366,7 +3360,7 @@ bool cmMakefile::ExpandArguments(
std::vector<cmListFileArgument> const& inArgs,
std::vector<cmExpandedCommandArgument>& outArgs) const
{
- std::string const& filename = this->GetExecutionFilePath();
+ std::string const& filename = this->GetBacktrace().Top().FilePath;
std::string value;
outArgs.reserve(inArgs.size());
for (cmListFileArgument const& i : inArgs) {