Merge topic 'trace-expand'

594bafe5 cmake: add --trace-expand option
This commit is contained in:
Brad King 2015-07-27 09:31:22 -04:00 committed by CMake Topic Stage
commit 280dde34dd
10 changed files with 46 additions and 7 deletions

View File

@ -113,14 +113,18 @@ Options
``--debug-output``
Put cmake in a debug mode.
Print extra stuff during the cmake run like stack traces with
Print extra information during the cmake run like stack traces with
message(send_error ) calls.
``--trace``
Put cmake in trace mode.
Print a trace of all calls made and from where with
message(send_error ) calls.
Print a trace of all calls made and from where.
``--trace-expand``
Put cmake in trace mode.
Like ``--trace``, but with variables expanded.
``--warn-uninitialized``
Warn about uninitialized values.

View File

@ -0,0 +1,5 @@
trace-expand
------------
* Add ``--trace-expand`` argument to CMake. Acts like ``--trace``, but expands
variable references in the output.

View File

@ -17,5 +17,5 @@ warn by default:
This variable should not be set by a project in CMake code. Project
developers running CMake may set this variable in their cache to
enable the warning (e.g. ``-DCMAKE_POLICY_WARNING_CMP<NNNN>=ON``).
Alternatively, running :manual:`cmake(1)` with the ``--debug-output``
or ``--trace`` option will also enable the warning.
Alternatively, running :manual:`cmake(1)` with the ``--debug-output``,
``--trace``, or ``--trace-expand`` option will also enable the warning.

View File

@ -339,10 +339,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 << ")";
@ -4773,7 +4784,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();
}

View File

@ -121,6 +121,7 @@ void cmWarnUnusedCliWarning(const std::string& variable,
cmake::cmake()
{
this->Trace = false;
this->TraceExpand = false;
this->WarnUninitialized = false;
this->WarnUnused = false;
this->WarnUnusedCli = true;
@ -617,10 +618,17 @@ void cmake::SetArgs(const std::vector<std::string>& args,
std::cout << "Running with debug output on.\n";
this->SetDebugOutputOn(true);
}
else if(arg.find("--trace-expand",0) == 0)
{
std::cout << "Running with expanded trace output on.\n";
this->SetTrace(true);
this->SetTraceExpand(true);
}
else if(arg.find("--trace",0) == 0)
{
std::cout << "Running with trace output on.\n";
this->SetTrace(true);
this->SetTraceExpand(false);
}
else if(arg.find("--warn-uninitialized",0) == 0)
{

View File

@ -270,6 +270,8 @@ class cmake
// Do we want trace output during the cmake run.
bool GetTrace() { return this->Trace;}
void SetTrace(bool b) { this->Trace = b;}
bool GetTraceExpand() { return this->TraceExpand;}
void SetTraceExpand(bool b) { this->TraceExpand = b;}
bool GetWarnUninitialized() { return this->WarnUninitialized;}
void SetWarnUninitialized(bool b) { this->WarnUninitialized = b;}
bool GetWarnUnused() { return this->WarnUnused;}
@ -378,6 +380,7 @@ private:
WorkingMode CurrentWorkingMode;
bool DebugOutput;
bool Trace;
bool TraceExpand;
bool WarnUninitialized;
bool WarnUnused;
bool WarnUnusedCli;

View File

@ -83,6 +83,7 @@ static const char * cmDocumentationOptions[][2] =
"useful on one try_compile at a time."},
{"--debug-output", "Put cmake in a debug mode."},
{"--trace", "Put cmake in trace mode."},
{"--trace-expand", "Put cmake in trace mode with variable expansion."},
{"--warn-uninitialized", "Warn about uninitialized values."},
{"--warn-unused-vars", "Warn about unused variables."},
{"--no-warn-unused-cli", "Don't warn about command line options."},

View File

@ -140,6 +140,10 @@ set(RunCMake_TEST_OPTIONS --trace)
run_cmake(trace)
unset(RunCMake_TEST_OPTIONS)
set(RunCMake_TEST_OPTIONS --trace-expand)
run_cmake(trace-expand)
unset(RunCMake_TEST_OPTIONS)
set(RunCMake_TEST_OPTIONS --debug-trycompile)
run_cmake(debug-trycompile)
unset(RunCMake_TEST_OPTIONS)

View File

@ -0,0 +1,2 @@
^.*/Tests/RunCMake/CommandLine/CMakeLists.txt\(1\): cmake_minimum_required\(VERSION 3.0 \)
.*/Tests/RunCMake/CommandLine/CMakeLists.txt\(2\): project\(trace-expand NONE \)