CPack: Fix packaging of source tarballs with symbolic links
When staging the package installation, if the first file in a directory happens to be a symbolic link, make sure we create the directory before trying to create the link.
This commit is contained in:
parent
ea7ca139ea
commit
81221b80e2
|
@ -437,6 +437,18 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories(
|
||||||
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Will create a symlink: "
|
cmCPackLogger(cmCPackLog::LOG_DEBUG, "Will create a symlink: "
|
||||||
<< symlinkedIt->second << "--> "
|
<< symlinkedIt->second << "--> "
|
||||||
<< symlinkedIt->first << std::endl);
|
<< 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,
|
if (!cmSystemTools::CreateSymlink(symlinkedIt->first,
|
||||||
symlinkedIt->second))
|
symlinkedIt->second))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue