mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-19 11:18:40 +08:00
Source: Remove redundant FileIsSymlink checks
Replace `FileExists || FileIsSymlink` with `PathExists`. The latter does not resolve symlinks, so this is OK for use with broken symlinks, files, and directories.
This commit is contained in:
@@ -3020,8 +3020,7 @@ bool HandleCreateLinkCommand(std::vector<std::string> const& args,
|
||||
}
|
||||
|
||||
// Check if the new file already exists and remove it.
|
||||
if ((cmSystemTools::FileExists(newFileName) ||
|
||||
cmSystemTools::FileIsSymlink(newFileName)) &&
|
||||
if (cmSystemTools::PathExists(newFileName) &&
|
||||
!cmSystemTools::RemoveFile(newFileName)) {
|
||||
std::ostringstream e;
|
||||
e << "Failed to create link '" << newFileName
|
||||
|
@@ -3264,7 +3264,7 @@ int cmake::CheckBuildSystem()
|
||||
// If any byproduct of makefile generation is missing we must re-run.
|
||||
cmList products{ mf.GetDefinition("CMAKE_MAKEFILE_PRODUCTS") };
|
||||
for (auto const& p : products) {
|
||||
if (!(cmSystemTools::FileExists(p) || cmSystemTools::FileIsSymlink(p))) {
|
||||
if (!cmSystemTools::PathExists(p)) {
|
||||
if (verbose) {
|
||||
cmSystemTools::Stdout(
|
||||
cmStrCat("Re-run cmake, missing byproduct: ", p, '\n'));
|
||||
|
@@ -1018,8 +1018,8 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string> const& args,
|
||||
// Complain if the -f option was not given and
|
||||
// either file does not exist or
|
||||
// file could not be removed and still exists
|
||||
bool file_exists_or_forced_remove = cmSystemTools::FileExists(arg) ||
|
||||
cmSystemTools::FileIsSymlink(arg) || force;
|
||||
bool file_exists_or_forced_remove =
|
||||
cmSystemTools::PathExists(arg) || force;
|
||||
if (cmSystemTools::FileIsDirectory(arg)) {
|
||||
if (!cmRemoveDirectory(arg, recursive)) {
|
||||
return_value = 1;
|
||||
@@ -1239,8 +1239,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string> const& args,
|
||||
// supporting them.
|
||||
if (args[1] == "create_symlink" && args.size() == 4) {
|
||||
std::string const& destinationFileName = args[3];
|
||||
if ((cmSystemTools::FileExists(destinationFileName) ||
|
||||
cmSystemTools::FileIsSymlink(destinationFileName)) &&
|
||||
if (cmSystemTools::PathExists(destinationFileName) &&
|
||||
!cmSystemTools::RemoveFile(destinationFileName)) {
|
||||
std::string emsg = cmSystemTools::GetLastSystemError();
|
||||
std::cerr << "failed to create symbolic link '" << destinationFileName
|
||||
@@ -1266,8 +1265,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string> const& args,
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ((cmSystemTools::FileExists(destinationFileName) ||
|
||||
cmSystemTools::FileIsSymlink(destinationFileName)) &&
|
||||
if (cmSystemTools::PathExists(destinationFileName) &&
|
||||
!cmSystemTools::RemoveFile(destinationFileName)) {
|
||||
std::string emsg = cmSystemTools::GetLastSystemError();
|
||||
std::cerr << "failed to create hard link '" << destinationFileName
|
||||
@@ -1750,7 +1748,7 @@ int cmcmd::SymlinkExecutable(std::vector<std::string> const& args)
|
||||
cmsys::Status cmcmd::SymlinkInternal(std::string const& file,
|
||||
std::string const& link)
|
||||
{
|
||||
if (cmSystemTools::FileExists(link) || cmSystemTools::FileIsSymlink(link)) {
|
||||
if (cmSystemTools::PathExists(link)) {
|
||||
cmSystemTools::RemoveFile(link);
|
||||
}
|
||||
std::string linktext = cmSystemTools::GetFilenameName(file);
|
||||
|
Reference in New Issue
Block a user