summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.cxx
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2015-07-21 21:18:53 (GMT)
committerBen Boeckel <ben.boeckel@kitware.com>2015-07-23 19:33:10 (GMT)
commit594bafe52773c940fc3fb9cd9022a4d1a3a194c7 (patch)
tree9ba8747bc0a23a46abe7035e8f507b647573fbd9 /Source/cmMakefile.cxx
parent265b9db7c2c865c5aad821bf9a377ea84dfe431e (diff)
downloadCMake-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.cxx16
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();
}