diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2000-08-29 19:26:29 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2000-08-29 19:26:29 (GMT) |
commit | 1f42f521cea8b953f4ad7ef5ca0d4c6d49c42a88 (patch) | |
tree | a7b88a2e4397167c0d6c72c9cf0fcf8f91dcd024 /Source/cmClassFile.cxx | |
parent | d6bdba1096f36268e414f32829e22159e983031a (diff) | |
download | CMake-1f42f521cea8b953f4ad7ef5ca0d4c6d49c42a88.zip CMake-1f42f521cea8b953f4ad7ef5ca0d4c6d49c42a88.tar.gz CMake-1f42f521cea8b953f4ad7ef5ca0d4c6d49c42a88.tar.bz2 |
NEW: move from tools and config to create CMake
Diffstat (limited to 'Source/cmClassFile.cxx')
-rw-r--r-- | Source/cmClassFile.cxx | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Source/cmClassFile.cxx b/Source/cmClassFile.cxx new file mode 100644 index 0000000..7893df6 --- /dev/null +++ b/Source/cmClassFile.cxx @@ -0,0 +1,77 @@ +#ifdef _MSC_VER +#pragma warning ( disable : 4786 ) +#endif +#include "cmClassFile.h" +#include <sys/stat.h> +#include <iostream> + + +// Helper function to hide the use of system stat function +bool cmFileExists(const char* filename) +{ + struct stat fs; + if (stat(filename, &fs) != 0) + { + return false; + } + else + { + return true; + } +} + +// Set the name of the class and the full path to the file. +// The class must be found in dir and end in name.cxx, name.txx, +// name.c or it will be considered a header file only class +// and not included in the build process +void cmClassFile::SetName(const char* name, const char* dir) +{ + m_HeaderFileOnly = true; + m_ClassName = name; + std::string pathname = dir; + if(pathname != "") + { + pathname += "/"; + } + + pathname += m_ClassName; + std::string hname = pathname; + hname += ".cxx"; + if(cmFileExists(hname.c_str())) + { + m_HeaderFileOnly = false; + m_FullPath = hname; + return; + } + hname = pathname; + hname += ".c"; + if(cmFileExists(hname.c_str())) + { + m_HeaderFileOnly = false; + m_FullPath = hname; + return; + } + hname = pathname; + hname += ".txx"; + if(cmFileExists(hname.c_str())) + { + m_HeaderFileOnly = false; + m_FullPath = hname; + return; + } + std::cerr << "file seems to be a header only " << hname << " " << m_ClassName.c_str() << std::endl; +} + + +void cmClassFile::Print() +{ + if(m_AbstractClass) + std::cout << "Abstract "; + else + std::cout << "Concrete "; + if(m_HeaderFileOnly) + std::cout << "Header file "; + else + std::cout << "CXX file "; + std::cout << m_ClassName << std::endl; +} |