summaryrefslogtreecommitdiffstats
path: root/Source/cmSystemTools.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmSystemTools.cxx')
-rw-r--r--Source/cmSystemTools.cxx21
1 files changed, 21 insertions, 0 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 2675066..c24b5ea 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -895,12 +895,33 @@ std::string cmSystemTools::FileExistsInParentDirectories(const char* fname,
bool cmSystemTools::cmCopyFile(const char* source, const char* destination)
{
+ // FIXME remove if statement once kwsys SystemTools get support for
+ // source is directory handling in CopyFileAlways function
+ if(cmSystemTools::FileIsDirectory(source))
+ {
+ return Superclass::MakeDirectory(destination);
+ }
+
return Superclass::CopyFileAlways(source, destination);
}
bool cmSystemTools::CopyFileIfDifferent(const char* source,
const char* destination)
{
+ // FIXME remove if statement once kwsys SystemTools get support for
+ // source is directory handling in CopyFileIfDifferent function
+ if(cmSystemTools::FileIsDirectory(source))
+ {
+ if(SystemTools::FileExists(destination))
+ {
+ return true;
+ }
+ else
+ {
+ return Superclass::MakeDirectory(destination);
+ }
+ }
+
return Superclass::CopyFileIfDifferent(source, destination);
}