| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| file LICENSE.rst or https://cmake.org/licensing for details. */ | |
| #include "cmObjectLocation.h" | |
| void cmObjectLocation::Update(std::string path) | |
| { | |
| this->Path = std::move(path); | |
| } | |
| std::string const& cmObjectLocation::GetPath() const | |
| { | |
| return this->Path; | |
| } | |
| cm::string_view cmObjectLocation::GetDirectory() const | |
| { | |
| auto const pos = this->Path.rfind('/'); | |
| if (pos == std::string::npos) { | |
| return {}; | |
| } | |
| return cm::string_view(this->Path.c_str(), pos); | |
| } | |
| cm::string_view cmObjectLocation::GetName() const | |
| { | |
| auto const pos = this->Path.rfind('/'); | |
| if (pos == std::string::npos) { | |
| return this->Path; | |
| } | |
| auto const nameStart = pos + 1; | |
| return cm::string_view(this->Path.c_str() + nameStart, | |
| this->Path.size() - nameStart); | |
| } | |
| cmObjectLocation const& cmObjectLocations::GetLocation(UseShortPath use) const | |
| { | |
| if (use == UseShortPath::Yes && this->ShortLoc) { | |
| return *this->ShortLoc; | |
| } | |
| return this->LongLoc; | |
| } | |
| std::string const& cmObjectLocations::GetPath(UseShortPath use) const | |
| { | |
| return this->GetLocation(use).GetPath(); | |
| } | |
| cmObjectLocation const& cmObjectLocations::GetInstallLocation( | |
| UseShortPath use, std::string const& config) const | |
| { | |
| if (use == UseShortPath::Yes && this->ShortLoc) { | |
| return *this->ShortLoc; | |
| } | |
| auto it = this->InstallLongLoc.find(config); | |
| if (it != this->InstallLongLoc.end()) { | |
| return it->second; | |
| } | |
| return this->LongLoc; | |
| } | |
| std::string const& cmObjectLocations::GetInstallPath( | |
| UseShortPath use, std::string const& config) const | |
| { | |
| return this->GetInstallLocation(use, config).GetPath(); | |
| } |