diff options
author | Brad King <brad.king@kitware.com> | 2008-09-22 14:56:48 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2008-09-22 14:56:48 (GMT) |
commit | 4719984553a47d6304ff6d23050859172ad46366 (patch) | |
tree | 9aec0995efabb4911fd991298dd33b2d27b14e43 | |
parent | 924fae24cf997707455e687eae55b481008d98e6 (diff) | |
download | CMake-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.cxx | 1 | ||||
-rw-r--r-- | Source/cmGlobalGenerator.h | 10 |
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); |