added functionality, fixed bug if no file existed and with header files

This commit is contained in:
Ken Martin 2001-02-26 17:15:44 -05:00
parent 7cde8fd0f4
commit 3b338dacaf
2 changed files with 40 additions and 3 deletions

View File

@ -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()))
{
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()
{

View File

@ -45,6 +45,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.
*/
@ -76,6 +84,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.
*/