summaryrefslogtreecommitdiffstats
path: root/Source/cmake.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-12-19 21:36:30 (GMT)
committerBrad King <brad.king@kitware.com>2007-12-19 21:36:30 (GMT)
commitde96fd1df995f5b7d3f79514a5a3bf90c6b4b205 (patch)
tree381cb2630c9854fb72f0580b910789dc62882a7b /Source/cmake.cxx
parentc7bf320539c12de919b34868a6af558459f2ddc0 (diff)
downloadCMake-de96fd1df995f5b7d3f79514a5a3bf90c6b4b205.zip
CMake-de96fd1df995f5b7d3f79514a5a3bf90c6b4b205.tar.gz
CMake-de96fd1df995f5b7d3f79514a5a3bf90c6b4b205.tar.bz2
ENH: Moved dependency integrity check from CheckBuildSystem over to a per-target UpdateDependencies step. This greatly reduces the startup time for make processes and allows individual targets to be built without a global dependency check.
Diffstat (limited to 'Source/cmake.cxx')
-rw-r--r--Source/cmake.cxx12
1 files changed, 10 insertions, 2 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 4143435..baa9f59 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -1353,6 +1353,10 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
// Internal CMake dependency scanning support.
else if (args[1] == "cmake_depends" && args.size() >= 6)
{
+ // Use the make system's VERBOSE environment variable to enable
+ // verbose output.
+ bool verbose = cmSystemTools::GetEnv("VERBOSE") != 0;
+
// Create a cmake object instance to process dependencies.
cmake cm;
std::string gen;
@@ -1416,7 +1420,7 @@ int cmake::ExecuteCMakeCommand(std::vector<std::string>& args)
lgd->GetMakefile()->MakeStartDirectoriesCurrent();
// Actually scan dependencies.
- return lgd->ScanDependencies(depInfo.c_str())? 0 : 2;
+ return lgd->UpdateDependencies(depInfo.c_str(), verbose)? 0 : 2;
}
return 1;
}
@@ -2549,7 +2553,11 @@ int cmake::CheckBuildSystem()
// Check the dependencies in case source files were removed.
std::auto_ptr<cmLocalGenerator> lgd(ggd->CreateLocalGenerator());
lgd->SetGlobalGenerator(ggd.get());
- lgd->CheckDependencies(mf, verbose, this->ClearBuildSystem);
+
+ if(this->ClearBuildSystem)
+ {
+ lgd->ClearDependencies(mf, verbose);
+ }
// Check for multiple output pairs.
ggd->CheckMultipleOutputs(mf, verbose);