cmInstallGenerator: Refactor computation of absolute install dest
Replace the GetInstallDestination method, which looked up the Destination ivar, with a new ConvertToAbsoluteDestination method that takes the nominal destination as an argument. Update call sites accordingly. This will allow some clients to transform the install destination before calling the method.
This commit is contained in:
parent
f99991db88
commit
290ca8e2d0
|
@ -199,7 +199,7 @@ void cmInstallExportGenerator::GenerateScriptActions(std::ostream& os,
|
|||
{
|
||||
// Remove old per-configuration export files if the main changes.
|
||||
std::string installedDir = "$ENV{DESTDIR}";
|
||||
installedDir += this->GetInstallDestination();
|
||||
installedDir += this->ConvertToAbsoluteDestination(this->Destination);
|
||||
installedDir += "/";
|
||||
std::string installedFile = installedDir;
|
||||
installedFile += this->FileName;
|
||||
|
|
|
@ -60,7 +60,7 @@ void cmInstallGenerator
|
|||
case cmInstallType_FILES: stype = "FILE"; break;
|
||||
}
|
||||
os << indent;
|
||||
std::string dest = this->GetInstallDestination();
|
||||
std::string dest = this->ConvertToAbsoluteDestination(this->Destination);
|
||||
if (cmSystemTools::FileIsFullPath(dest.c_str()))
|
||||
{
|
||||
os << "list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES\n";
|
||||
|
@ -179,15 +179,16 @@ bool cmInstallGenerator::InstallsForConfig(const std::string& config)
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
std::string cmInstallGenerator::GetInstallDestination() const
|
||||
std::string
|
||||
cmInstallGenerator::ConvertToAbsoluteDestination(std::string const& dest) const
|
||||
{
|
||||
std::string result;
|
||||
if(!this->Destination.empty() &&
|
||||
!cmSystemTools::FileIsFullPath(this->Destination.c_str()))
|
||||
if(!dest.empty() &&
|
||||
!cmSystemTools::FileIsFullPath(dest.c_str()))
|
||||
{
|
||||
result = "${CMAKE_INSTALL_PREFIX}/";
|
||||
}
|
||||
result += this->Destination;
|
||||
result += dest;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ public:
|
|||
|
||||
/** Get the install destination as it should appear in the
|
||||
installation script. */
|
||||
std::string GetInstallDestination() const;
|
||||
std::string ConvertToAbsoluteDestination(std::string const& dest) const;
|
||||
|
||||
/** Test if this generator installs something for a given configuration. */
|
||||
bool InstallsForConfig(const std::string& config);
|
||||
|
|
|
@ -77,7 +77,8 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream& os,
|
|||
fromDirConfig = this->Target->GetDirectory(config, this->ImportLibrary);
|
||||
fromDirConfig += "/";
|
||||
}
|
||||
std::string toDir = this->GetInstallDestination();
|
||||
std::string toDir =
|
||||
this->ConvertToAbsoluteDestination(this->Destination);
|
||||
toDir += "/";
|
||||
|
||||
// Compute the list of files to install for this target.
|
||||
|
|
Loading…
Reference in New Issue