diff options
author | Domen Vrankar <domen.vrankar@gmail.com> | 2015-09-22 00:08:26 (GMT) |
---|---|---|
committer | Domen Vrankar <domen.vrankar@gmail.com> | 2015-09-22 00:08:26 (GMT) |
commit | b58de9fe2ba4ac3e194403ecd118fd54681ffae8 (patch) | |
tree | 789846ed936c0a2e0cf09abb755d487042263720 /Source | |
parent | 47b060aee0871bdb5fea63b398a1f1cb07fa3b37 (diff) | |
download | CMake-b58de9fe2ba4ac3e194403ecd118fd54681ffae8.zip CMake-b58de9fe2ba4ac3e194403ecd118fd54681ffae8.tar.gz CMake-b58de9fe2ba4ac3e194403ecd118fd54681ffae8.tar.bz2 |
CPack: allow packaging of empty directories
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CPack/cmCPackGenerator.cxx | 5 | ||||
-rw-r--r-- | Source/cmSystemTools.cxx | 21 |
2 files changed, 26 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index 92a4b2b..aa4f181 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -367,6 +367,8 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories( cmCPackLogger(cmCPackLog::LOG_OUTPUT, "- Install directory: " << top << std::endl); gl.RecurseOn(); + gl.SetRecurseListDirs(true); +// gl.SetRecurseThroughSymlinks(false); if ( !gl.FindFiles(findExpr) ) { cmCPackLogger(cmCPackLog::LOG_ERROR, @@ -869,6 +871,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects( cmsys::Glob glB; findExpr += "/*"; glB.RecurseOn(); + glB.SetRecurseListDirs(true); glB.FindFiles(findExpr); filesBefore = glB.GetFiles(); std::sort(filesBefore.begin(),filesBefore.end()); @@ -908,6 +911,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects( { cmsys::Glob glA; glA.RecurseOn(); + glA.SetRecurseListDirs(true); glA.FindFiles(findExpr); std::vector<std::string> filesAfter = glA.GetFiles(); std::sort(filesAfter.begin(),filesAfter.end()); @@ -1074,6 +1078,7 @@ int cmCPackGenerator::DoPackage() std::string findExpr = tempDirectory; findExpr += "/*"; gl.RecurseOn(); + gl.SetRecurseListDirs(true); gl.SetRecurseThroughSymlinks(false); if ( !gl.FindFiles(findExpr) ) { 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); } |