Просмотр исходного кода

Autogen: Use GetRealPath in central places only

Sebastian Holtermann 8 лет назад
Родитель
Сommit
3ec230de1f
1 измененных файлов с 18 добавлено и 27 удалено
  1. 18 27
      Source/cmQtAutoGenerators.cxx

+ 18 - 27
Source/cmQtAutoGenerators.cxx

@@ -588,7 +588,7 @@ bool cmQtAutoGenerators::RunAutogen()
   // Parse sources
   for (std::vector<std::string>::const_iterator it = this->Sources.begin();
        it != this->Sources.end(); ++it) {
-    const std::string& absFilename = *it;
+    const std::string& absFilename = cmsys::SystemTools::GetRealPath(*it);
     // Parse source file for MOC/UIC
     if (!this->ParseSourceFile(absFilename, mocsIncluded, uisIncluded,
                                this->MocRelaxedMode)) {
@@ -602,7 +602,7 @@ bool cmQtAutoGenerators::RunAutogen()
   // Parse headers
   for (std::vector<std::string>::const_iterator it = this->Headers.begin();
        it != this->Headers.end(); ++it) {
-    const std::string& headerName = *it;
+    const std::string& headerName = cmsys::SystemTools::GetRealPath(*it);
     if (!this->MocSkip(headerName)) {
       mocHeaderFiles.insert(headerName);
     }
@@ -718,7 +718,6 @@ void cmQtAutoGenerators::ParseContentForUic(
     this->LogInfo(err.str());
   }
 
-  const std::string realName = cmsys::SystemTools::GetRealPath(absFilename);
   const char* contentChars = contentsString.c_str();
   if (strstr(contentChars, "ui_") != CM_NULLPTR) {
     while (this->RegExpUicInclude.find(contentChars)) {
@@ -727,7 +726,7 @@ void cmQtAutoGenerators::ParseContentForUic(
         cmsys::SystemTools::GetFilenameWithoutLastExtension(currentUi);
       // basename should be the part of the ui filename used for
       // finding the correct header, so we need to remove the ui_ part
-      uisIncluded[realName].push_back(basename.substr(3));
+      uisIncluded[absFilename].push_back(basename.substr(3));
       contentChars += this->RegExpUicInclude.end();
     }
   }
@@ -747,9 +746,7 @@ bool cmQtAutoGenerators::ParseContentForMoc(
   }
 
   const std::string scannedFileAbsPath =
-    cmsys::SystemTools::GetFilenamePath(
-      cmsys::SystemTools::GetRealPath(absFilename)) +
-    '/';
+    cmsys::SystemTools::GetFilenamePath(absFilename) + '/';
   const std::string scannedFileBasename =
     cmsys::SystemTools::GetFilenameWithoutLastExtension(absFilename);
 
@@ -932,33 +929,27 @@ void cmQtAutoGenerators::SearchHeadersForSourceFile(
 {
   std::string basepaths[2];
   {
-    std::string bpath = cmsys::SystemTools::GetFilenamePath(
-      cmsys::SystemTools::GetRealPath(absFilename));
+    std::string bpath = cmsys::SystemTools::GetFilenamePath(absFilename);
     bpath += '/';
     bpath += cmsys::SystemTools::GetFilenameWithoutLastExtension(absFilename);
-
     // search for default header files and private header files
-    basepaths[0] = (bpath + ".");
-    basepaths[1] = (bpath + "_p.");
+    basepaths[0] = bpath;
+    basepaths[1] = bpath + "_p";
   }
 
   for (const std::string* bpit = cmArrayBegin(basepaths);
        bpit != cmArrayEnd(basepaths); ++bpit) {
-    for (std::vector<std::string>::const_iterator heit =
-           this->HeaderExtensions.begin();
-         heit != this->HeaderExtensions.end(); ++heit) {
-      const std::string hname = (*bpit) + (*heit);
-      if (cmsys::SystemTools::FileExists(hname.c_str())) {
-        // Moc headers
-        if (!this->MocSkip(absFilename) && !this->MocSkip(hname)) {
-          mocHeaderFiles.insert(hname);
-        }
-        // Uic headers
-        if (!this->UicSkip(absFilename) && !this->UicSkip(hname)) {
-          uicHeaderFiles.insert(hname);
-        }
-        break;
+    std::string headerName;
+    if (this->FindHeader(headerName, *bpit)) {
+      // Moc headers
+      if (!this->MocSkip(absFilename) && !this->MocSkip(headerName)) {
+        mocHeaderFiles.insert(headerName);
+      }
+      // Uic headers
+      if (!this->UicSkip(absFilename) && !this->UicSkip(headerName)) {
+        uicHeaderFiles.insert(headerName);
       }
+      break;
     }
   }
 }
@@ -1643,7 +1634,7 @@ std::string cmQtAutoGenerators::FindMocHeader(const std::string& basePath,
   } while (false);
   // Sanitize
   if (!header.empty()) {
-    header = cmSystemTools::CollapseFullPath(header);
+    header = cmsys::SystemTools::GetRealPath(header);
   }
   return header;
 }