1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-19 19:43:23 +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:
scivision
2023-09-17 23:01:40 -04:00
committed by Brad King
parent d007eb7046
commit f5ff17fcf2
3 changed files with 7 additions and 10 deletions

View File

@@ -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

View File

@@ -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'));

View File

@@ -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);