summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2006-05-30 20:23:24 (GMT)
committerBrad King <brad.king@kitware.com>2006-05-30 20:23:24 (GMT)
commitd3073828f056ceb965aa33ed0c04477d3dba7fa8 (patch)
treedf63bebd9456ecbd2ebd19b35a34e897de42db00
parentd9e060e0625edfe523210f66e023b3367f5a2775 (diff)
downloadCMake-d3073828f056ceb965aa33ed0c04477d3dba7fa8.zip
CMake-d3073828f056ceb965aa33ed0c04477d3dba7fa8.tar.gz
CMake-d3073828f056ceb965aa33ed0c04477d3dba7fa8.tar.bz2
BUG: Fix progress when total number of source files is less than 100.
-rw-r--r--Source/cmGlobalUnixMakefileGenerator3.cxx26
-rw-r--r--Source/cmLocalUnixMakefileGenerator3.cxx11
2 files changed, 30 insertions, 7 deletions
diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx
index 037fb68..b7f6797 100644
--- a/Source/cmGlobalUnixMakefileGenerator3.cxx
+++ b/Source/cmGlobalUnixMakefileGenerator3.cxx
@@ -703,15 +703,23 @@ cmGlobalUnixMakefileGenerator3
std::string progressDir =
lg->GetMakefile()->GetHomeOutputDirectory();
progressDir += "/CMakeFiles";
+
+ {
+ // TODO: Convert the total progress count to a make variable.
cmOStringStream progCmd;
- progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
+ progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # in target
progCmd << lg->Convert(progressDir.c_str(),
cmLocalGenerator::FULL,
cmLocalGenerator::SHELL);
+ int n = this->GetNumberOfSourceFiles();
+ if(n > 100)
+ {
+ n = 100;
+ }
if (this->NumberOfSourceFiles)
{
progCmd << " " <<
- (100*this->GetTargetTotalNumberOfSourceFiles(t->second))/
+ (n*this->GetTargetTotalNumberOfSourceFiles(t->second))/
this->NumberOfSourceFiles;
}
else
@@ -719,9 +727,19 @@ cmGlobalUnixMakefileGenerator3
progCmd << " 0";
}
commands.push_back(progCmd.str());
+ }
commands.push_back(lg->GetRecursiveMakeCall
("CMakeFiles/Makefile2",t->second.GetName()));
- depends.clear();
+ {
+ cmOStringStream progCmd;
+ progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0
+ progCmd << lg->Convert(progressDir.c_str(),
+ cmLocalGenerator::FULL,
+ cmLocalGenerator::SHELL);
+ progCmd << " 0";
+ commands.push_back(progCmd.str());
+ }
+ depends.clear();
depends.push_back("cmake_check_build_system");
lg->WriteMakeRule(ruleFileStream,
"Build rule for target.",
@@ -840,7 +858,7 @@ cmGlobalUnixMakefileGenerator3
lg->GetMakefile()->GetHomeOutputDirectory();
progressDir += "/CMakeFiles";
cmOStringStream progCmd;
- progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report ";
+ progCmd << "$(CMAKE_COMMAND) -E cmake_progress_report "; // all target counts
progCmd << lg->Convert(progressDir.c_str(),
cmLocalGenerator::FULL,
cmLocalGenerator::SHELL);
diff --git a/Source/cmLocalUnixMakefileGenerator3.cxx b/Source/cmLocalUnixMakefileGenerator3.cxx
index ae7cd04..a3bd5c9 100644
--- a/Source/cmLocalUnixMakefileGenerator3.cxx
+++ b/Source/cmLocalUnixMakefileGenerator3.cxx
@@ -1402,13 +1402,18 @@ void cmLocalUnixMakefileGenerator3
std::string progressDir = this->Makefile->GetHomeOutputDirectory();
progressDir += "/CMakeFiles";
cmOStringStream progCmd;
- progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
+ progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # src files
progCmd << this->Convert(progressDir.c_str(),
cmLocalGenerator::FULL,
cmLocalGenerator::SHELL);
cmGlobalUnixMakefileGenerator3 *gg =
static_cast<cmGlobalUnixMakefileGenerator3*>(this->GlobalGenerator);
- progCmd << " " << gg->GetNumberOfSourceFiles();
+ int n = gg->GetNumberOfSourceFiles();
+ if(n > 100)
+ {
+ n = 100;
+ }
+ progCmd << " " << n;
commands.push_back(progCmd.str());
}
@@ -1422,7 +1427,7 @@ void cmLocalUnixMakefileGenerator3
std::string progressDir = this->Makefile->GetHomeOutputDirectory();
progressDir += "/CMakeFiles";
cmOStringStream progCmd;
- progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start ";
+ progCmd << "$(CMAKE_COMMAND) -E cmake_progress_start "; // # 0
progCmd << this->Convert(progressDir.c_str(),
cmLocalGenerator::FULL,
cmLocalGenerator::SHELL);