diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2015-07-21 21:18:53 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2015-07-23 19:33:10 (GMT) |
commit | 594bafe52773c940fc3fb9cd9022a4d1a3a194c7 (patch) | |
tree | 9ba8747bc0a23a46abe7035e8f507b647573fbd9 /Source/cmMakefile.cxx | |
parent | 265b9db7c2c865c5aad821bf9a377ea84dfe431e (diff) | |
download | CMake-594bafe52773c940fc3fb9cd9022a4d1a3a194c7.zip CMake-594bafe52773c940fc3fb9cd9022a4d1a3a194c7.tar.gz CMake-594bafe52773c940fc3fb9cd9022a4d1a3a194c7.tar.bz2 |
cmake: add --trace-expand option
The --trace option is helpful, but sometimes, what you're looking for is
deep under many layers of function calls and figuring out what instance
of the function call you're looking at is tedious to determine (usually
involving patching and message()). Instead, add a --trace-expand option
to trace while expanding commands into what CMake actually sees.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index ae69b24..7c98970 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -307,10 +307,21 @@ void cmMakefile::PrintCommandTrace(const cmListFileFunction& lff) const std::ostringstream msg; msg << this->GetExecutionFilePath() << "(" << lff.Line << "): "; msg << lff.Name << "("; + bool expand = this->GetCMakeInstance()->GetTraceExpand(); + std::string temp; for(std::vector<cmListFileArgument>::const_iterator i = lff.Arguments.begin(); i != lff.Arguments.end(); ++i) { - msg << i->Value; + if (expand) + { + temp = i->Value; + this->ExpandVariablesInString(temp); + msg << temp; + } + else + { + msg << i->Value; + } msg << " "; } msg << ")"; @@ -4802,7 +4813,8 @@ bool cmMakefile::PolicyOptionalWarningEnabled(std::string const& var) return cmSystemTools::IsOn(val); } } - // Enable optional policy warnings with --debug-output or --trace. + // Enable optional policy warnings with --debug-output, --trace, + // or --trace-expand. cmake* cm = this->GetCMakeInstance(); return cm->GetDebugOutput() || cm->GetTrace(); } |