summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-02-04 10:34:10 -0500
committerBrad King <brad.king@kitware.com>2009-02-04 10:34:10 -0500
commita27e9ca4a2fe780ab10d11fdf3759e0c8d76a0d3 (patch)
tree191aab6a75fd5c42bd9309059e6852c02a4dcca6 /Source
parent2d662e0083d415710ff41497fd11b2e8d524e4de (diff)
downloadcmake-a27e9ca4a2fe780ab10d11fdf3759e0c8d76a0d3.tar.gz
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.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmInstallFilesCommand.cxx4
-rw-r--r--Source/cmInstallProgramsCommand.cxx4
-rw-r--r--Source/cmLocalGenerator.cxx4
3 files changed, 12 insertions, 0 deletions
diff --git a/Source/cmInstallFilesCommand.cxx b/Source/cmInstallFilesCommand.cxx
index a352244258..5cfb08ec4d 100644
--- a/Source/cmInstallFilesCommand.cxx
+++ b/Source/cmInstallFilesCommand.cxx
@@ -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 = "";
diff --git a/Source/cmInstallProgramsCommand.cxx b/Source/cmInstallProgramsCommand.cxx
index d7557d0603..989490ef5c 100644
--- a/Source/cmInstallProgramsCommand.cxx
+++ b/Source/cmInstallProgramsCommand.cxx
@@ -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 = "";
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 141e9341e3..c496686eee 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -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())