Переглянути джерело

Merge topic 'dedup-path-normalization'

b52d9d6960 cmSystemTools: Drop unused CollapseCombinedPath method
a13a5c948e Replace use of CollapseCombinedPath with CollapseFullPath

Acked-by: Kitware Robot <[email protected]>
Acked-by: Sebastian Holtermann <[email protected]>
Merge-request: !3117
Brad King 6 роки тому
батько
коміт
23a84ac990

+ 1 - 1
Source/CPack/cmCPackDebGenerator.cxx

@@ -195,7 +195,7 @@ bool DebGenerator::generateDataTar() const
       // XXX/application/usr/bin/myprogram with GEN_WDIR=XXX/application
       // should not add XXX/application
       orderedFiles.insert(currentPath);
-      currentPath = cmSystemTools::CollapseCombinedPath(currentPath, "..");
+      currentPath = cmSystemTools::CollapseFullPath("..", currentPath);
     }
   }
 

+ 1 - 2
Source/CPack/cmCPackFreeBSDGenerator.cxx

@@ -325,8 +325,7 @@ int cmCPackFreeBSDGenerator::PackageFiles()
                              ONE_PACKAGE_PER_COMPONENT);
   }
 
-  std::string output_dir =
-    cmSystemTools::CollapseCombinedPath(toplevel, "../");
+  std::string output_dir = cmSystemTools::CollapseFullPath("../", toplevel);
   pkg_create_from_manifest(output_dir.c_str(), ::TXZ, toplevel.c_str(),
                            manifestname.c_str(), nullptr);
 

+ 2 - 2
Source/cmDependsC.cxx

@@ -150,7 +150,7 @@ bool cmDependsC::WriteDependencies(const std::set<std::string>& sources,
             // Construct the name of the file as if it were in the current
             // include directory.  Avoid using a leading "./".
             std::string tmpPath =
-              cmSystemTools::CollapseCombinedPath(iPath, current.FileName);
+              cmSystemTools::CollapseFullPath(current.FileName, iPath);
 
             // Look for the file in this location.
             if (cmSystemTools::FileExists(tmpPath, true)) {
@@ -362,7 +362,7 @@ void cmDependsC::Scan(std::istream& is, const std::string& directory,
         // must check for the file in the directory containing the
         // file we are scanning.
         entry.QuotedLocation =
-          cmSystemTools::CollapseCombinedPath(directory, entry.FileName);
+          cmSystemTools::CollapseFullPath(entry.FileName, directory);
       }
 
       // Queue the file if it has not yet been encountered and it

+ 1 - 1
Source/cmGhsMultiTargetGenerator.cxx

@@ -287,7 +287,7 @@ void cmGhsMultiTargetGenerator::WriteTargetLinkLine(std::ostream& fout,
     if (l.compare(0, 2, "-l") == 0) {
       fout << "    \"" << l << "\"" << std::endl;
     } else {
-      std::string rl = cmSystemTools::CollapseCombinedPath(cbd, l);
+      std::string rl = cmSystemTools::CollapseFullPath(l, cbd);
       fout << "    -l\"" << rl << "\"" << std::endl;
     }
   }

+ 1 - 2
Source/cmGlobalGhsMultiGenerator.cxx

@@ -185,8 +185,7 @@ void cmGlobalGhsMultiGenerator::GetToolset(cmMakefile* mf, std::string& tsd,
     }
   } else {
     std::string tryPath;
-    /* CollapseCombinedPath will check if ts is an absolute path */
-    tryPath = cmSystemTools::CollapseCombinedPath(tsd, ts);
+    tryPath = cmSystemTools::CollapseFullPath(ts, tsd);
     if (!cmSystemTools::FileExists(tryPath)) {
       std::string msg = "GHS toolset \"" + tryPath + "\" not found.";
       cmSystemTools::Error(msg);

+ 1 - 1
Source/cmQtAutoGen.cxx

@@ -309,7 +309,7 @@ void cmQtAutoGen::RccListConvertFullPath(std::string const& qrcFileDir,
                                          std::vector<std::string>& files)
 {
   for (std::string& entry : files) {
-    std::string tmp = cmSystemTools::CollapseCombinedPath(qrcFileDir, entry);
+    std::string tmp = cmSystemTools::CollapseFullPath(entry, qrcFileDir);
     entry = std::move(tmp);
   }
 }

+ 3 - 3
Source/cmQtAutoGenerator.cxx

@@ -158,11 +158,11 @@ std::string cmQtAutoGenerator::FileSystem::GetRealPath(
   return cmSystemTools::GetRealPath(filename);
 }
 
-std::string cmQtAutoGenerator::FileSystem::CollapseCombinedPath(
-  std::string const& dir, std::string const& file)
+std::string cmQtAutoGenerator::FileSystem::CollapseFullPath(
+  std::string const& file, std::string const& dir)
 {
   std::lock_guard<std::mutex> lock(Mutex_);
-  return cmSystemTools::CollapseCombinedPath(dir, file);
+  return cmSystemTools::CollapseFullPath(file, dir);
 }
 
 void cmQtAutoGenerator::FileSystem::SplitPath(

+ 3 - 3
Source/cmQtAutoGenerator.h

@@ -77,9 +77,9 @@ public:
     // -- Paths
     /// @brief Wrapper for cmSystemTools::GetRealPath
     std::string GetRealPath(std::string const& filename);
-    /// @brief Wrapper for cmSystemTools::CollapseCombinedPath
-    std::string CollapseCombinedPath(std::string const& dir,
-                                     std::string const& file);
+    /// @brief Wrapper for cmSystemTools::CollapseFullPath
+    std::string CollapseFullPath(std::string const& file,
+                                 std::string const& dir);
     /// @brief Wrapper for cmSystemTools::SplitPath
     void SplitPath(const std::string& p, std::vector<std::string>& components,
                    bool expand_home_dir = true);

+ 1 - 1
Source/cmQtAutoGeneratorMocUic.cxx

@@ -27,7 +27,7 @@
 std::string cmQtAutoGeneratorMocUic::BaseSettingsT::AbsoluteBuildPath(
   std::string const& relativePath) const
 {
-  return FileSys->CollapseCombinedPath(AutogenBuildDir, relativePath);
+  return FileSys->CollapseFullPath(relativePath, AutogenBuildDir);
 }
 
 /**

+ 0 - 30
Source/cmSystemTools.cxx

@@ -1510,36 +1510,6 @@ std::string cmSystemTools::ForceToRelativePath(std::string const& local_path,
   return relative;
 }
 
-std::string cmSystemTools::CollapseCombinedPath(std::string const& dir,
-                                                std::string const& file)
-{
-  if (dir.empty() || dir == ".") {
-    return file;
-  }
-
-  std::vector<std::string> dirComponents;
-  std::vector<std::string> fileComponents;
-  cmSystemTools::SplitPath(dir, dirComponents);
-  cmSystemTools::SplitPath(file, fileComponents);
-
-  if (fileComponents.empty()) {
-    return dir;
-  }
-  if (!fileComponents[0].empty()) {
-    // File is not a relative path.
-    return file;
-  }
-
-  std::vector<std::string>::iterator i = fileComponents.begin() + 1;
-  while (i != fileComponents.end() && *i == ".." && dirComponents.size() > 1) {
-    ++i;                      // Remove ".." file component.
-    dirComponents.pop_back(); // Remove last dir component.
-  }
-
-  dirComponents.insert(dirComponents.end(), i, fileComponents.end());
-  return cmSystemTools::JoinPath(dirComponents);
-}
-
 #ifdef CMAKE_BUILD_WITH_CMAKE
 bool cmSystemTools::UnsetEnv(const char* value)
 {

+ 0 - 6
Source/cmSystemTools.h

@@ -374,12 +374,6 @@ public:
   static std::string ForceToRelativePath(std::string const& local_path,
                                          std::string const& remote_path);
 
-  /** Joins two paths while collapsing x/../ parts
-   * For example CollapseCombinedPath("a/b/c", "../../d") results in "a/d"
-   */
-  static std::string CollapseCombinedPath(std::string const& dir,
-                                          std::string const& file);
-
 #ifdef CMAKE_BUILD_WITH_CMAKE
   /** Remove an environment variable */
   static bool UnsetEnv(const char* value);