Makefile: Improve handling of WMake verbose output and errors
* The '-e' option has nothing to do with verbose output. It is now properly handled by .ERASE directive in make file * The '-s' option sets silent output globally, it cannot be switched off. It is now handled only by .SILENT directive in make file directive is simply controlled by a conditonal block. Remove SilentNoColon member variable as it is no longer needed.
This commit is contained in:
parent
e21ffaf8fe
commit
f1b689b64a
|
@ -43,11 +43,10 @@ void cmGlobalWatcomWMakeGenerator
|
|||
cmLocalGenerator *cmGlobalWatcomWMakeGenerator::CreateLocalGenerator()
|
||||
{
|
||||
cmLocalUnixMakefileGenerator3* lg = new cmLocalUnixMakefileGenerator3;
|
||||
lg->SetSilentNoColon(true);
|
||||
lg->SetDefineWindowsNULL(true);
|
||||
lg->SetWindowsShell(true);
|
||||
lg->SetWatcomWMake(true);
|
||||
lg->SetMakeSilentFlag("-s -h -e");
|
||||
lg->SetMakeSilentFlag("-h");
|
||||
lg->SetGlobalGenerator(this);
|
||||
lg->SetIgnoreLibPrefix(true);
|
||||
lg->SetPassMakeflags(false);
|
||||
|
|
|
@ -80,7 +80,6 @@ static std::string cmSplitExtension(std::string const& in, std::string& base)
|
|||
//----------------------------------------------------------------------------
|
||||
cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3()
|
||||
{
|
||||
this->SilentNoColon = false;
|
||||
this->WindowsShell = false;
|
||||
this->IncludeDirective = "include";
|
||||
this->MakefileVariableSize = 0;
|
||||
|
@ -758,15 +757,17 @@ cmLocalUnixMakefileGenerator3
|
|||
depends.push_back(".hpux_make_needs_suffix_list");
|
||||
this->WriteMakeRule(makefileStream, 0,
|
||||
".SUFFIXES", depends, no_commands, false);
|
||||
|
||||
cmGlobalUnixMakefileGenerator3* gg =
|
||||
static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
|
||||
// Write special target to silence make output. This must be after
|
||||
// the default target in case VERBOSE is set (which changes the
|
||||
// name). The setting of CMAKE_VERBOSE_MAKEFILE to ON will cause a
|
||||
// "VERBOSE=1" to be added as a make variable which will change the
|
||||
// name of this special target. This gives a make-time choice to
|
||||
// the user.
|
||||
if(this->WatcomWMake)
|
||||
{
|
||||
// Switch on WMake feature, if an error or interrupt occurs during
|
||||
// makefile processing, the current target being made may be deleted
|
||||
// without prompting (the same as command line -e option).
|
||||
makefileStream <<
|
||||
"\n"
|
||||
".ERASE\n"
|
||||
"\n"
|
||||
;
|
||||
}
|
||||
if(this->Makefile->IsOn("CMAKE_VERBOSE_MAKEFILE"))
|
||||
{
|
||||
makefileStream
|
||||
|
@ -774,12 +775,22 @@ cmLocalUnixMakefileGenerator3
|
|||
<< "VERBOSE = 1\n"
|
||||
<< "\n";
|
||||
}
|
||||
if(this->SilentNoColon)
|
||||
if(this->WatcomWMake)
|
||||
{
|
||||
makefileStream << "$(VERBOSE).SILENT\n";
|
||||
makefileStream <<
|
||||
"!ifndef VERBOSE\n"
|
||||
".SILENT\n"
|
||||
"!endif\n"
|
||||
;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Write special target to silence make output. This must be after
|
||||
// the default target in case VERBOSE is set (which changes the
|
||||
// name). The setting of CMAKE_VERBOSE_MAKEFILE to ON will cause a
|
||||
// "VERBOSE=1" to be added as a make variable which will change the
|
||||
// name of this special target. This gives a make-time choice to
|
||||
// the user.
|
||||
this->WriteMakeRule(makefileStream,
|
||||
"Suppress display of executed commands.",
|
||||
"$(VERBOSE).SILENT",
|
||||
|
@ -789,6 +800,8 @@ cmLocalUnixMakefileGenerator3
|
|||
|
||||
// Work-around for makes that drop rules that have no dependencies
|
||||
// or commands.
|
||||
cmGlobalUnixMakefileGenerator3* gg =
|
||||
static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
|
||||
std::string hack = gg->GetEmptyRuleHackDepends();
|
||||
if(!hack.empty())
|
||||
{
|
||||
|
|
|
@ -120,12 +120,6 @@ public:
|
|||
*/
|
||||
void SetUnixCD(bool v) {this->UnixCD = v;}
|
||||
|
||||
/**
|
||||
* Set Support Verbose Variable. If true, then .SILENT will
|
||||
* be not end with : i.e. .SILENT: or .SILENT
|
||||
*/
|
||||
void SetSilentNoColon(bool v) {this->SilentNoColon = v;}
|
||||
|
||||
/**
|
||||
* Set the string used to include one makefile into another default
|
||||
* is include.
|
||||
|
@ -339,7 +333,6 @@ private:
|
|||
bool DefineWindowsNULL;
|
||||
bool UnixCD;
|
||||
bool PassMakeflags;
|
||||
bool SilentNoColon;
|
||||
bool MakeCommandEscapeTargetTwice;
|
||||
bool BorlandMakeCurlyHack;
|
||||
//==========================================================================
|
||||
|
|
Loading…
Reference in New Issue