summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmFileCommand.cxx25
-rw-r--r--Source/cmInstallCommand.h6
2 files changed, 10 insertions, 21 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 68bc52d..9ca4f19 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -649,7 +649,6 @@ bool cmFileCommand::HandleInstallCommand(
// If permissions were not specified set default permissions for
// this target type.
- bool use_source_permissions = false;
if(!use_given_permissions)
{
switch(itype)
@@ -658,7 +657,6 @@ bool cmFileCommand::HandleInstallCommand(
case cmTarget::MODULE_LIBRARY:
#if defined(__linux__)
// Use read/write permissions.
- use_given_permissions = true;
permissions = 0;
permissions |= mode_owner_read;
permissions |= mode_owner_write;
@@ -669,7 +667,6 @@ bool cmFileCommand::HandleInstallCommand(
case cmTarget::EXECUTABLE:
case cmTarget::INSTALL_PROGRAMS:
// Use read/write/executable permissions.
- use_given_permissions = true;
permissions = 0;
permissions |= mode_owner_read;
permissions |= mode_owner_write;
@@ -680,8 +677,12 @@ bool cmFileCommand::HandleInstallCommand(
permissions |= mode_world_execute;
break;
default:
- // Use the permissions of the file being copied.
- use_source_permissions = true;
+ // Use read/write permissions.
+ permissions = 0;
+ permissions |= mode_owner_read;
+ permissions |= mode_owner_write;
+ permissions |= mode_group_read;
+ permissions |= mode_world_read;
break;
}
}
@@ -840,20 +841,6 @@ bool cmFileCommand::HandleInstallCommand(
message += toFile.c_str();
this->Makefile->DisplayStatus(message.c_str(), -1);
- // If no permissions were already given use the permissions of
- // the file being copied.
- if(!use_given_permissions &&
- (!use_source_permissions ||
- !cmSystemTools::GetPermissions(fromFile.c_str(), permissions)))
- {
- // Set default permissions.
- permissions = 0;
- permissions |= mode_owner_read;
- permissions |= mode_owner_write;
- permissions |= mode_group_read;
- permissions |= mode_world_read;
- }
-
// Copy the file, but only if it has changed.
if(!cmSystemTools::CopyFileIfDifferent(fromFile.c_str(),
toFile.c_str()))
diff --git a/Source/cmInstallCommand.h b/Source/cmInstallCommand.h
index 4907b91..3c10e5a 100644
--- a/Source/cmInstallCommand.h
+++ b/Source/cmInstallCommand.h
@@ -143,7 +143,8 @@ public:
"The FILES form specifies rules for installing files for a "
"project. File names given as relative paths are interpreted with "
"respect to the current source directory. Files installed by this "
- "form are given the same permissions as the original file by default."
+ "form are by default given permissions OWNER_WRITE, OWNER_READ, "
+ "GROUP_READ, and WORLD_READ if no PERMISSIONS argument is given."
"\n"
"The PROGRAMS signature:\n"
" INSTALL(PROGRAMS files... DESTINATION <dir>\n"
@@ -151,7 +152,8 @@ public:
" [COMPONENT <component>]\n"
" [RENAME <name>])\n"
"The PROGRAMS form is identical to the FILES form except that the "
- "default permissions for the installed file mark it as executable. "
+ "default permissions for the installed file also include "
+ "OWNER_EXECUTE, GROUP_EXECUTE, and WORLD_EXECUTE. "
"This form is intended to install programs that are not targets, "
"such as shell scripts. Use the TARGETS form to install targets "
"built within the project."