summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2008-09-22 14:56:48 (GMT)
committerBrad King <brad.king@kitware.com>2008-09-22 14:56:48 (GMT)
commit4719984553a47d6304ff6d23050859172ad46366 (patch)
tree9aec0995efabb4911fd991298dd33b2d27b14e43
parent924fae24cf997707455e687eae55b481008d98e6 (diff)
downloadCMake-4719984553a47d6304ff6d23050859172ad46366.zip
CMake-4719984553a47d6304ff6d23050859172ad46366.tar.gz
CMake-4719984553a47d6304ff6d23050859172ad46366.tar.bz2
ENH: Make dir content cache work during configure
Previously the cmGlobalGenerator::GetDirectoryContent method would work safely only during build system generation. These changes make it safe to use during each configure step by flushing it at the beginning.
-rw-r--r--Source/cmGlobalGenerator.cxx1
-rw-r--r--Source/cmGlobalGenerator.h10
2 files changed, 6 insertions, 5 deletions
diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx
index d7d6c9b..3552596 100644
--- a/Source/cmGlobalGenerator.cxx
+++ b/Source/cmGlobalGenerator.cxx
@@ -731,6 +731,7 @@ void cmGlobalGenerator::Configure()
this->LocalGeneratorToTargetMap.clear();
this->ProjectMap.clear();
this->RuleHashes.clear();
+ this->DirectoryContentMap.clear();
// start with this directory
cmLocalGenerator *lg = this->CreateLocalGenerator();
diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h
index bc4e74b..01aeffd 100644
--- a/Source/cmGlobalGenerator.h
+++ b/Source/cmGlobalGenerator.h
@@ -213,12 +213,12 @@ public:
configuration. This is valid during generation only. */
cmTargetManifest const& GetTargetManifest() { return this->TargetManifest; }
- /** Get the content of a directory on disk including the target
- files to be generated. This may be called only during the
- generation step. It is intended for use only by
- cmComputeLinkInformation. */
+ /** Get the content of a directory. Directory listings are loaded
+ from disk at most once and cached. During the generation step
+ the content will include the target files to be built even if
+ they do not yet exist. */
std::set<cmStdString> const& GetDirectoryContent(std::string const& dir,
- bool needDisk);
+ bool needDisk = true);
void AddTarget(cmTargets::value_type &v);