summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2006-10-06 15:11:59 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2006-10-06 15:11:59 (GMT)
commit017cec95ada69369e3959cc9c09248335ea2dbfa (patch)
tree8605887f13d7632a16e94899ad5fdc955aa990a9 /Source
parent7f7374e8189871289b604fcc8f109411bca793dd (diff)
downloadCMake-017cec95ada69369e3959cc9c09248335ea2dbfa.zip
CMake-017cec95ada69369e3959cc9c09248335ea2dbfa.tar.gz
CMake-017cec95ada69369e3959cc9c09248335ea2dbfa.tar.bz2
ENH: do not print a call stack if the user does a message error unless --debug-output is used
Diffstat (limited to 'Source')
-rw-r--r--Source/cmMessageCommand.cxx17
-rw-r--r--Source/cmake.cxx6
-rw-r--r--Source/cmake.h6
-rw-r--r--Source/cmakemain.cxx3
4 files changed, 28 insertions, 4 deletions
diff --git a/Source/cmMessageCommand.cxx b/Source/cmMessageCommand.cxx
index 7ab17fb..266bcf8 100644
--- a/Source/cmMessageCommand.cxx
+++ b/Source/cmMessageCommand.cxx
@@ -59,8 +59,14 @@ bool cmMessageCommand::InitialPass(std::vector<std::string> const& args)
if (send_error || fatal_error)
{
- //cmSystemTools::Error(message.c_str());
- this->SetError(message.c_str());
+ if( !this->Makefile->GetCMakeInstance()->GetDebugOutput())
+ {
+ cmSystemTools::Error(message.c_str());
+ }
+ else
+ {
+ this->SetError(message.c_str());
+ }
}
else
{
@@ -77,6 +83,11 @@ bool cmMessageCommand::InitialPass(std::vector<std::string> const& args)
{
cmSystemTools::SetFatalErrorOccured();
}
- return (!send_error && !fatal_error);
+ // if debug is on then retru
+ if(this->Makefile->GetCMakeInstance()->GetDebugOutput())
+ {
+ return (!send_error && !fatal_error);
+ }
+ return true;
}
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 8636aa0..c1ca881 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -111,6 +111,7 @@ void cmNeedBackwardsCompatibility(const std::string& variable,
cmake::cmake()
{
+ this->DebugOutput = false;
this->DebugTryCompile = false;
this->ClearBuildSystem = false;
this->FileComparison = new cmFileTimeComparison;
@@ -446,6 +447,11 @@ void cmake::SetArgs(const std::vector<std::string>& args)
std::cout << "debug trycompile on\n";
this->DebugTryCompileOn();
}
+ else if(arg.find("--debug-output",0) == 0)
+ {
+ std::cout << "Running with debug output on.\n";
+ this->DebugOutputOn();
+ }
else if(arg.find("-G",0) == 0)
{
std::string value = arg.substr(2);
diff --git a/Source/cmake.h b/Source/cmake.h
index d63cf7e..643dfec 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -281,6 +281,9 @@ class cmake
const char* GetCPackCommand();
const char* GetCMakeCommand() { return this->CMakeCommand.c_str(); }
+ // Do we want debug output during the cmake run.
+ bool GetDebugOutput() { return this->DebugOutput; }
+ void DebugOutputOn() { this->DebugOutput = true;}
protected:
typedef cmGlobalGenerator* (*CreateGeneratorFunctionType)();
typedef std::map<cmStdString,
@@ -326,13 +329,14 @@ protected:
static int ExecuteLinkScript(std::vector<std::string>& args);
cmVariableWatch* VariableWatch;
-
+
private:
ProgressCallbackType ProgressCallback;
void* ProgressCallbackClientData;
bool Verbose;
bool InTryCompile;
bool ScriptMode;
+ bool DebugOutput;
std::string CMakeCommand;
std::string CXXEnvironment;
std::string CCEnvironment;
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 1a5d2db..f183ae2 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -85,6 +85,9 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
{"--debug-trycompile", "Do not delete the try compile directories..",
"Do not delete the files and directories created for try_compile calls. "
"This is useful in debugging failed try_compiles."},
+ {"--debug-output", "Put cmake in a debug mode.",
+ "Print extra stuff during the cmake run like stack traces with "
+ "message(send_error ) calls."},
{"--help-command cmd [file]", "Print help for a single command and exit.",
"Full documentation specific to the given command is displayed."},
{"--help-command-list [file]", "List available listfile commands and exit.",