BUG: Fix old-style install to prefix top
The old install_files, install_programs, and install_targets commands used to permit installation to the top of the prefix by specifying destination '/'. This was broken in 2.6.0 to 2.6.2 by changes to enforce valid destinations that did not account for this case. This change fixes the case by converting the install destination to '.' which is the new-style way to specify the top of the installation prefix.
This commit is contained in:
parent
2d662e0083
commit
a27e9ca4a2
|
@ -125,6 +125,10 @@ void cmInstallFilesCommand::CreateInstallGenerator() const
|
|||
// the prefix. We skip the leading slash given by the user.
|
||||
std::string destination = this->Destination.substr(1);
|
||||
cmSystemTools::ConvertToUnixSlashes(destination);
|
||||
if(destination.empty())
|
||||
{
|
||||
destination = ".";
|
||||
}
|
||||
|
||||
// Use a file install generator.
|
||||
const char* no_permissions = "";
|
||||
|
|
|
@ -86,6 +86,10 @@ void cmInstallProgramsCommand::FinalPass()
|
|||
// the prefix. We skip the leading slash given by the user.
|
||||
std::string destination = this->Destination.substr(1);
|
||||
cmSystemTools::ConvertToUnixSlashes(destination);
|
||||
if(destination.empty())
|
||||
{
|
||||
destination = ".";
|
||||
}
|
||||
|
||||
// Use a file install generator.
|
||||
const char* no_permissions = "";
|
||||
|
|
|
@ -2377,6 +2377,10 @@ cmLocalGenerator
|
|||
// We also skip over the leading slash given by the user.
|
||||
std::string destination = l->second.GetInstallPath().substr(1);
|
||||
cmSystemTools::ConvertToUnixSlashes(destination);
|
||||
if(destination.empty())
|
||||
{
|
||||
destination = ".";
|
||||
}
|
||||
|
||||
// Generate the proper install generator for this target type.
|
||||
switch(l->second.GetType())
|
||||
|
|
Loading…
Reference in New Issue