summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-01-30 10:24:21 -0500
committerBrad King <brad.king@kitware.com>2015-01-30 10:24:21 -0500
commit37662ea4bf64087f2251e2f4a71a13623cfe047f (patch)
treef94e414cbb90ea69bec5e0e96fc3f9a0929347ed
parent048fb8e3d0dd41f73f3a12f6ce3b13c80148ea3e (diff)
parent4dc5acee634b3ac72f2e1c2f1ca0489526a86cf3 (diff)
downloadcmake-37662ea4bf64087f2251e2f4a71a13623cfe047f.tar.gz
Merge branch 'backport-fix-cpack-symlink-create-dir' into release-3.1
-rw-r--r--Source/CPack/cmCPackGenerator.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index 84e64821e7..8139d298a0 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -437,6 +437,18 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories(
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Will create a symlink: "
<< symlinkedIt->second << "--> "
<< symlinkedIt->first << std::endl);
+ // make sure directory exists for symlink
+ std::string destDir =
+ cmSystemTools::GetFilenamePath(symlinkedIt->second);
+ if(!destDir.empty() && !cmSystemTools::MakeDirectory(destDir))
+ {
+ cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot create dir: "
+ << destDir
+ << "\nTrying to create symlink: "
+ << symlinkedIt->second << "--> "
+ << symlinkedIt->first
+ << std::endl);
+ }
if (!cmSystemTools::CreateSymlink((symlinkedIt->first).c_str(),
(symlinkedIt->second).c_str()))
{