Browse Source

Autogen: Add FindInIncludeDirectories method

Sebastian Holtermann 8 years ago
parent
commit
80a007534f
2 changed files with 21 additions and 0 deletions
  1. 19 0
      Source/cmQtAutoGenerators.cxx
  2. 2 0
      Source/cmQtAutoGenerators.h

+ 19 - 0
Source/cmQtAutoGenerators.cxx

@@ -1626,6 +1626,25 @@ std::string cmQtAutoGenerators::FindMatchingHeader(
   return header;
 }
 
+/**
+ * @brief Tries to find a file in the include directories
+ * @return True on success
+ */
+bool cmQtAutoGenerators::FindInIncludeDirectories(
+  std::string& file_n, const std::string& searchString) const
+{
+  for (std::vector<std::string>::const_iterator iit =
+         this->MocIncludePaths.begin();
+       iit != this->MocIncludePaths.end(); ++iit) {
+    const std::string fullPath = ((*iit) + '/' + searchString);
+    if (cmsys::SystemTools::FileExists(fullPath.c_str())) {
+      file_n = fullPath;
+      return true;
+    }
+  }
+  return false;
+}
+
 /**
  * @brief Generates the parent directory of the given file on demand
  * @return True on success

+ 2 - 0
Source/cmQtAutoGenerators.h

@@ -121,6 +121,8 @@ private:
   std::string FindMatchingHeader(const std::string& basePath,
                                  const std::string& baseName,
                                  const std::string& subDir) const;
+  bool FindInIncludeDirectories(std::string& file_n,
+                                const std::string& searchString) const;
 
   // - Target names
   std::string OriginTargetName;