diff options
author | Brad King <brad.king@kitware.com> | 2017-09-25 12:33:29 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-09-25 13:06:24 (GMT) |
commit | 1604716dfc493bf55bc1d87b5083bbe2ee709e60 (patch) | |
tree | 49e44682a002439f4479abdc22dc96137914acdd /Source/cmMakefile.cxx | |
parent | 4609aaf513ffd6f253ec7c8a8bca6bb93d7eede5 (diff) | |
download | CMake-1604716dfc493bf55bc1d87b5083bbe2ee709e60.zip CMake-1604716dfc493bf55bc1d87b5083bbe2ee709e60.tar.gz CMake-1604716dfc493bf55bc1d87b5083bbe2ee709e60.tar.bz2 |
Revert "Performance: Improve efficiency of source file lookup in cmMakefile"
This reverts commit 3b95ab569345028a1a8fe521d5ecd81fa97f2653.
It regressed some legacy source file property behavior.
Revert pending further investigation.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 50 |
1 files changed, 3 insertions, 47 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index c96b892..e51cfcc 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -3082,18 +3082,9 @@ void cmMakefile::SetArgcArgv(const std::vector<std::string>& args) cmSourceFile* cmMakefile::GetSource(const std::string& sourceName) const { cmSourceFileLocation sfl(this, sourceName); - -#if defined(_WIN32) || defined(__APPLE__) - const auto& name = cmSystemTools::LowerCase(sfl.GetName()); -#else - const auto& name = sfl.GetName(); -#endif - auto sfsi = this->SourceFileSearchIndex.find(name); - if (sfsi != this->SourceFileSearchIndex.end()) { - for (auto sf : sfsi->second) { - if (sf->Matches(sfl)) { - return sf; - } + for (cmSourceFile* sf : this->SourceFiles) { + if (sf->Matches(sfl)) { + return sf; } } return nullptr; @@ -3107,41 +3098,6 @@ cmSourceFile* cmMakefile::CreateSource(const std::string& sourceName, sf->SetProperty("GENERATED", "1"); } this->SourceFiles.push_back(sf); - - auto name = sf->GetLocation().GetName(); -#if defined(_WIN32) || defined(__APPLE__) - name = cmSystemTools::LowerCase(name); -#endif - - // For a file in the form "a.b.c" add the cmSourceFile to the index - // at "a.b.c", "a.b" and "a". - auto partial = name; - while (true) { - this->SourceFileSearchIndex[partial].insert(sf); - auto i = partial.rfind('.'); - if (i == std::string::npos) { - break; - } - partial = partial.substr(0, i); - } - - if (sf->GetLocation().ExtensionIsAmbiguous()) { - // For an ambiguous extension also add the various "known" - // extensions to the original filename. - - const auto& srcExts = this->GetCMakeInstance()->GetSourceExtensions(); - for (const auto& ext : srcExts) { - auto name_ext = name + "." + cmSystemTools::LowerCase(ext); - this->SourceFileSearchIndex[name_ext].insert(sf); - } - - const auto& hdrExts = this->GetCMakeInstance()->GetHeaderExtensions(); - for (const auto& ext : hdrExts) { - auto name_ext = name + "." + cmSystemTools::LowerCase(ext); - this->SourceFileSearchIndex[name_ext].insert(sf); - } - } - return sf; } |