mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 12:49:36 -06:00
file(INSTALL): Improve formatting of symlink creation error
Avoid printing two error messages. Format paths without wrapping.
This commit is contained in:
@@ -504,11 +504,12 @@ bool cmFileCopier::InstallSymlinkChain(std::string& fromFile,
|
|||||||
cmSystemTools::RemoveFile(toFile);
|
cmSystemTools::RemoveFile(toFile);
|
||||||
cmSystemTools::MakeDirectory(toFilePath);
|
cmSystemTools::MakeDirectory(toFilePath);
|
||||||
|
|
||||||
if (!cmSystemTools::CreateSymlink(symlinkTarget, toFile)) {
|
cmsys::Status status =
|
||||||
std::ostringstream e;
|
cmSystemTools::CreateSymlinkQuietly(symlinkTarget, toFile);
|
||||||
e << this->Name << " cannot create symlink \"" << toFile
|
if (!status) {
|
||||||
<< "\": " << cmSystemTools::GetLastSystemError() << ".";
|
std::string e = cmStrCat(this->Name, " cannot create symlink\n ",
|
||||||
this->Status.SetError(e.str());
|
toFile, "\nbecause: ", status.GetString());
|
||||||
|
this->Status.SetError(e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -557,12 +558,13 @@ bool cmFileCopier::InstallSymlink(const std::string& fromFile,
|
|||||||
cmSystemTools::MakeDirectory(cmSystemTools::GetFilenamePath(toFile));
|
cmSystemTools::MakeDirectory(cmSystemTools::GetFilenamePath(toFile));
|
||||||
|
|
||||||
// Create the symlink.
|
// Create the symlink.
|
||||||
if (!cmSystemTools::CreateSymlink(symlinkTarget, toFile)) {
|
cmsys::Status status =
|
||||||
std::ostringstream e;
|
cmSystemTools::CreateSymlinkQuietly(symlinkTarget, toFile);
|
||||||
e << this->Name << " cannot duplicate symlink \"" << fromFile
|
if (!status) {
|
||||||
<< "\" at \"" << toFile
|
std::string e =
|
||||||
<< "\": " << cmSystemTools::GetLastSystemError() << ".";
|
cmStrCat(this->Name, " cannot duplicate symlink\n ", fromFile,
|
||||||
this->Status.SetError(e.str());
|
"\nat\n ", toFile, "\nbecause: ", status.GetString());
|
||||||
|
this->Status.SetError(e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
1
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
^CMake Error at cmake_install.cmake:[0-9]+ \(file\):
|
||||||
|
file INSTALL cannot duplicate symlink
|
||||||
|
|
||||||
|
[^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/new/dir
|
||||||
|
|
||||||
|
at
|
||||||
|
|
||||||
|
[^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/dir
|
||||||
|
|
||||||
|
because:
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
-- Installing: [^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/dir
|
||||||
|
-- Installing: [^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/dir/file
|
||||||
|
-- Installing: [^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/lnk
|
||||||
|
-- Up-to-date: [^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/lnk
|
||||||
|
-- Up-to-date: [^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/lnk/file
|
||||||
|
-- Installing: [^
|
||||||
|
]*/Tests/RunCMake/install/DIRECTORY-symlink-clobber-build/root-all/dest/dir
|
||||||
11
Tests/RunCMake/install/DIRECTORY-symlink-clobber.cmake
Normal file
11
Tests/RunCMake/install/DIRECTORY-symlink-clobber.cmake
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/old/dir)
|
||||||
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/old/dir/file "")
|
||||||
|
file(CREATE_LINK dir ${CMAKE_CURRENT_BINARY_DIR}/old/lnk SYMBOLIC)
|
||||||
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/old/dir DESTINATION dest)
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/old/lnk DESTINATION dest)
|
||||||
|
|
||||||
|
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/new/lnk)
|
||||||
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/new/lnk/file "")
|
||||||
|
file(CREATE_LINK lnk ${CMAKE_CURRENT_BINARY_DIR}/new/dir SYMBOLIC)
|
||||||
|
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/new/lnk DESTINATION dest)
|
||||||
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/new/dir DESTINATION dest)
|
||||||
@@ -175,6 +175,10 @@ run_install_test(FILES-PERMISSIONS)
|
|||||||
run_install_test(TARGETS-RPATH)
|
run_install_test(TARGETS-RPATH)
|
||||||
run_install_test(InstallRequiredSystemLibraries)
|
run_install_test(InstallRequiredSystemLibraries)
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
run_install_test(DIRECTORY-symlink-clobber)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
||||||
run_cmake(TARGETS-RUNTIME_DEPENDENCIES-macos-two-bundle)
|
run_cmake(TARGETS-RUNTIME_DEPENDENCIES-macos-two-bundle)
|
||||||
run_cmake(TARGETS-RUNTIME_DEPENDENCIES-macos-no-framework)
|
run_cmake(TARGETS-RUNTIME_DEPENDENCIES-macos-no-framework)
|
||||||
|
|||||||
Reference in New Issue
Block a user