summaryrefslogtreecommitdiffstats
path: root/Source
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 /Source
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.
Diffstat (limited to 'Source')
-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);