summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmSystemTools.cxx22
-rw-r--r--Source/cmSystemTools.h5
2 files changed, 27 insertions, 0 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 0ef39fd..b729333 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1703,6 +1703,28 @@ bool cmSystemTools::FileIsDirectory(const char* name)
}
}
+bool cmSystemTools::DoesFileExistWithExtensions(
+ const char* name,
+ const std::vector<std::string>& headerExts)
+{
+ std::string hname;
+
+ for( std::vector<std::string>::const_iterator ext = headerExts.begin();
+ ext != headerExts.end(); ++ext )
+ {
+ hname = name;
+ hname += ".";
+ hname += *ext;
+ if(cmSystemTools::FileExists(hname.c_str()))
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
+
int cmSystemTools::ChangeDirectory(const char *dir)
{
return Chdir(dir);
diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h
index 8317e64..51d9c41 100644
--- a/Source/cmSystemTools.h
+++ b/Source/cmSystemTools.h
@@ -244,6 +244,11 @@ public:
///! return true if the file is a directory.
static bool FileIsDirectory(const char* name);
+
+ static bool DoesFileExistWithExtensions(
+ const char *name,
+ const std::vector<std::string>& sourceExts);
+
static void Glob(const char *directory, const char *regexp,
std::vector<std::string>& files);
static void GlobDirs(const char *fullPath, std::vector<std::string>& files);