ENH: Add simple progress reporting during make

This commit is contained in:
Andy Cedilnik 2006-05-15 13:02:28 -04:00
parent 000bce884d
commit fd8e45d4a1
3 changed files with 25 additions and 0 deletions

View File

@ -623,6 +623,8 @@ cmGlobalUnixMakefileGenerator3
commands.clear(); commands.clear();
commands.push_back(lg->GetRecursiveMakeCall commands.push_back(lg->GetRecursiveMakeCall
("CMakeFiles/Makefile2",t->second.GetName())); ("CMakeFiles/Makefile2",t->second.GetName()));
std::string echoCommand = "@echo \"\"";
commands.push_back(echoCommand.c_str());
depends.clear(); depends.clear();
depends.push_back("cmake_check_build_system"); depends.push_back("cmake_check_build_system");
lg->WriteMakeRule(ruleFileStream, lg->WriteMakeRule(ruleFileStream,
@ -675,6 +677,7 @@ cmGlobalUnixMakefileGenerator3
std::string localName; std::string localName;
std::string makeTargetName; std::string makeTargetName;
// write the directory level rules for this local gen // write the directory level rules for this local gen
this->WriteDirectoryRules2(ruleFileStream,lg); this->WriteDirectoryRules2(ruleFileStream,lg);
@ -707,6 +710,8 @@ cmGlobalUnixMakefileGenerator3
<< localName << "\n\n"; << localName << "\n\n";
commands.clear(); commands.clear();
std::string echoCommand = "@$(CMAKE_COMMAND) -E echo_append \".\"";
commands.push_back(echoCommand.c_str());
if (t->second.GetType() != cmTarget::UTILITY) if (t->second.GetType() != cmTarget::UTILITY)
{ {
makeTargetName = localName; makeTargetName = localName;
@ -731,6 +736,7 @@ cmGlobalUnixMakefileGenerator3
// Write the rule. // Write the rule.
localName += "/all"; localName += "/all";
depends.clear(); depends.clear();
this->AppendGlobalTargetDepends(depends,t->second); this->AppendGlobalTargetDepends(depends,t->second);
lg->WriteMakeRule(ruleFileStream, "All Build rule for target.", lg->WriteMakeRule(ruleFileStream, "All Build rule for target.",
localName.c_str(), depends, commands, true); localName.c_str(), depends, commands, true);

View File

@ -886,6 +886,8 @@ cmLocalUnixMakefileGenerator3::AppendEcho(std::vector<std::string>& commands,
break; break;
} }
} }
#else
(void)color;
#endif #endif
// Echo one line at a time. // Echo one line at a time.
@ -1411,6 +1413,8 @@ void cmLocalUnixMakefileGenerator3
this->CreateCDCommand(commands, this->CreateCDCommand(commands,
this->Makefile->GetHomeOutputDirectory(), this->Makefile->GetHomeOutputDirectory(),
this->Makefile->GetStartOutputDirectory()); this->Makefile->GetStartOutputDirectory());
std::string echoCommand = "@echo \"\"";
commands.push_back(echoCommand.c_str());
this->WriteMakeRule(ruleFileStream, "The main all target", "all", this->WriteMakeRule(ruleFileStream, "The main all target", "all",
depends, commands, true); depends, commands, true);

View File

@ -749,6 +749,8 @@ void CMakeCommandUsage(const char* program)
"content to directory 'destination'\n" "content to directory 'destination'\n"
<< " compare_files file1 file2 - check if file1 is same as file2\n" << " compare_files file1 file2 - check if file1 is same as file2\n"
<< " echo [string]... - displays arguments as text\n" << " echo [string]... - displays arguments as text\n"
<< " echo_append [string]... - displays arguments as text but no new"
" line\n"
<< " environment - display the current enviroment\n" << " environment - display the current enviroment\n"
<< " remove file1 file2 ... - remove the file(s)\n" << " remove file1 file2 ... - remove the file(s)\n"
<< " tar [cxt][vfz] file.tar file/dir1 file/dir2 ... - create a tar.\n" << " tar [cxt][vfz] file.tar file/dir1 file/dir2 ... - create a tar.\n"
@ -835,6 +837,19 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
return 0; return 0;
} }
// Echo string no new line
else if (args[1] == "echo_append" )
{
unsigned int cc;
const char* space = "";
for ( cc = 2; cc < args.size(); cc ++ )
{
std::cout << space << args[cc];
space = " ";
}
return 0;
}
#if defined(CMAKE_BUILD_WITH_CMAKE) #if defined(CMAKE_BUILD_WITH_CMAKE)
// Command to create a symbolic link. Fails on platforms not // Command to create a symbolic link. Fails on platforms not
// supporting them. // supporting them.