diff options
author | Ken Martin <ken.martin@kitware.com> | 2001-02-26 22:15:44 (GMT) |
---|---|---|
committer | Ken Martin <ken.martin@kitware.com> | 2001-02-26 22:15:44 (GMT) |
commit | 3b338dacaf0baca14bcffbdaae4a44bc4dbcc7e3 (patch) | |
tree | 48021fb9bae94622d3fd3c775fa987e7ae5a0f3b | |
parent | 7cde8fd0f47143090b81dff813270f6894004af3 (diff) | |
download | CMake-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.cxx | 29 | ||||
-rw-r--r-- | Source/cmClassFile.h | 14 |
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; |