diff options
author | Brad King <brad.king@kitware.com> | 2020-09-25 14:26:01 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-09-28 13:49:08 (GMT) |
commit | 07c1bdda3d42b255ddf9d7145e0aa952f87ee978 (patch) | |
tree | e66fc5b94eaabf4ea45c12cf460510aa961b27d0 /Source | |
parent | 727ed0c403ad87c5cae84222d7d69b95b665b63f (diff) | |
download | CMake-07c1bdda3d42b255ddf9d7145e0aa952f87ee978.zip CMake-07c1bdda3d42b255ddf9d7145e0aa952f87ee978.tar.gz CMake-07c1bdda3d42b255ddf9d7145e0aa952f87ee978.tar.bz2 |
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')
-rw-r--r-- | Source/cmMakefile.cxx | 16 | ||||
-rw-r--r-- | Source/cmMakefile.h | 2 |
2 files changed, 5 insertions, 13 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 2147026..c8b2133 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) { diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 022c029..7c3348d 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -937,8 +937,6 @@ public: const char* GetDefineFlagsCMP0059() const; - std::string const& GetExecutionFilePath() const; - void EnforceDirectoryLevelRules() const; void AddEvaluationFile( |