From 4719984553a47d6304ff6d23050859172ad46366 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 22 Sep 2008 10:56:48 -0400 Subject: [PATCH] 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. --- Source/cmGlobalGenerator.cxx | 1 + Source/cmGlobalGenerator.h | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index d7d6c9b71..355259685 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 bc4e74bbf..01aeffd4f 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 const& GetDirectoryContent(std::string const& dir, - bool needDisk); + bool needDisk = true); void AddTarget(cmTargets::value_type &v);