summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmFileCommand.cxx14
1 files changed, 10 insertions, 4 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx
index 9ca4f19..08d0d78 100644
--- a/Source/cmFileCommand.cxx
+++ b/Source/cmFileCommand.cxx
@@ -696,6 +696,11 @@ bool cmFileCommand::HandleInstallCommand(
smanifest_files = manifest_files;
}
+ // Check whether files should be copied always or only if they have
+ // changed.
+ bool copy_always =
+ cmSystemTools::IsOn(cmSystemTools::GetEnv("CMAKE_INSTALL_ALWAYS"));
+
// Handle each file listed.
for ( i = 0; i < files.size(); i ++ )
{
@@ -825,7 +830,8 @@ bool cmFileCommand::HandleInstallCommand(
message = "Installing ";
message += toFile.c_str();
this->Makefile->DisplayStatus(message.c_str(), -1);
- if(!cmSystemTools::CopyADirectory(fromFile.c_str(), toFile.c_str()))
+ if(!cmSystemTools::CopyADirectory(fromFile.c_str(), toFile.c_str(),
+ copy_always))
{
cmOStringStream e;
e << "INSTALL cannot copy directory \"" << fromFile
@@ -841,9 +847,9 @@ bool cmFileCommand::HandleInstallCommand(
message += toFile.c_str();
this->Makefile->DisplayStatus(message.c_str(), -1);
- // Copy the file, but only if it has changed.
- if(!cmSystemTools::CopyFileIfDifferent(fromFile.c_str(),
- toFile.c_str()))
+ // Copy the file.
+ if(!cmSystemTools::CopyAFile(fromFile.c_str(), toFile.c_str(),
+ copy_always))
{
cmOStringStream e;
e << "INSTALL cannot copy file \"" << fromFile