summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2001-02-26 22:15:44 (GMT)
committerKen Martin <ken.martin@kitware.com>2001-02-26 22:15:44 (GMT)
commit3b338dacaf0baca14bcffbdaae4a44bc4dbcc7e3 (patch)
tree48021fb9bae94622d3fd3c775fa987e7ae5a0f3b
parent7cde8fd0f47143090b81dff813270f6894004af3 (diff)
downloadCMake-3b338dacaf0baca14bcffbdaae4a44bc4dbcc7e3.zip
CMake-3b338dacaf0baca14bcffbdaae4a44bc4dbcc7e3.tar.gz
CMake-3b338dacaf0baca14bcffbdaae4a44bc4dbcc7e3.tar.bz2
added functionality, fixed bug if no file existed and with header files
-rw-r--r--Source/cmClassFile.cxx29
-rw-r--r--Source/cmClassFile.h14
2 files changed, 40 insertions, 3 deletions
diff --git a/Source/cmClassFile.cxx b/Source/cmClassFile.cxx
index 8e408156..67d7436 100644
--- a/Source/cmClassFile.cxx
+++ b/Source/cmClassFile.cxx
@@ -49,6 +49,7 @@ void cmClassFile::SetName(const char* name, const char* dir)
hname += ".cxx";
if(cmSystemTools::FileExists(hname.c_str()))
{
+ m_ClassExtension = "cxx";
m_HeaderFileOnly = false;
m_FullPath = hname;
return;
@@ -59,6 +60,7 @@ void cmClassFile::SetName(const char* name, const char* dir)
if(cmSystemTools::FileExists(hname.c_str()))
{
m_HeaderFileOnly = false;
+ m_ClassExtension = "c";
m_FullPath = hname;
return;
}
@@ -67,18 +69,39 @@ void cmClassFile::SetName(const char* name, const char* dir)
if(cmSystemTools::FileExists(hname.c_str()))
{
m_HeaderFileOnly = false;
+ m_ClassExtension = "txx";
m_FullPath = hname;
return;
}
hname = pathname;
hname += ".h";
- if(!cmSystemTools::FileExists(hname.c_str()))
+ if(cmSystemTools::FileExists(hname.c_str()))
{
- cmSystemTools::Error("can not find file ", hname.c_str());
- cmSystemTools::Error("Tried .txx .cxx .c for ", hname.c_str());
+ m_ClassExtension = "h";
+ m_FullPath = hname;
+ return;
}
+
+ cmSystemTools::Error("can not find file ", hname.c_str());
+ cmSystemTools::Error("Tried .txx .cxx .c for ", hname.c_str());
}
+void cmClassFile::SetName(const char* name, const char* dir, const char *ext,
+ bool hfo)
+{
+ m_HeaderFileOnly = hfo;
+ m_ClassName = name;
+ std::string pathname = dir;
+ if(pathname != "")
+ {
+ pathname += "/";
+ }
+
+ pathname += m_ClassName + "." + ext;
+ m_FullPath = pathname;
+ m_ClassExtension = ext;
+ return;
+}
void cmClassFile::Print()
{
diff --git a/Source/cmClassFile.h b/Source/cmClassFile.h
index 8a9845e..e0e4d50 100644
--- a/Source/cmClassFile.h
+++ b/Source/cmClassFile.h
@@ -46,6 +46,14 @@ public:
void SetName(const char* name, const char* dir);
/**
+ * Set the name of the file, given the directory the file should be in. IN
+ * this version the extesion is provided in the call. This is useful for
+ * generated files that do not exist prior to the build.
+ */
+ void SetName(const char* name, const char* dir, const char *ext,
+ bool headerFileOnly);
+
+ /**
* Print the structure to std::cout.
*/
void Print();
@@ -77,6 +85,12 @@ public:
std::string m_ClassName;
/**
+ * The file name associated with stripped off directory and extension.
+ * (In most cases this is the name of the class.)
+ */
+ std::string m_ClassExtension;
+
+ /**
* The dependencies of this class are gathered here.
*/
std::vector<std::string> m_Depends;