summaryrefslogtreecommitdiffstats
path: root/Source/cmCableSourceFilesCommand.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2001-03-08 16:30:26 (GMT)
committerBrad King <brad.king@kitware.com>2001-03-08 16:30:26 (GMT)
commit353f6c3261fdf8003263a8e28d9e657999c720a5 (patch)
tree2e410c47c6128ebb8b88378e3260d9e695dae700 /Source/cmCableSourceFilesCommand.cxx
parent4666b017101de1aa9367a8c6d8ad0b8cb03a77c5 (diff)
downloadCMake-353f6c3261fdf8003263a8e28d9e657999c720a5.zip
CMake-353f6c3261fdf8003263a8e28d9e657999c720a5.tar.gz
CMake-353f6c3261fdf8003263a8e28d9e657999c720a5.tar.bz2
ENH: Added .txx detection for Header block output.
Diffstat (limited to 'Source/cmCableSourceFilesCommand.cxx')
-rw-r--r--Source/cmCableSourceFilesCommand.cxx26
1 files changed, 25 insertions, 1 deletions
diff --git a/Source/cmCableSourceFilesCommand.cxx b/Source/cmCableSourceFilesCommand.cxx
index d1dd40d..97a6c51 100644
--- a/Source/cmCableSourceFilesCommand.cxx
+++ b/Source/cmCableSourceFilesCommand.cxx
@@ -27,11 +27,35 @@ void cmCableSourceFilesCommand::WriteConfiguration() const
cmRegularExpression needCdataBlock("[&<>]");
+ // Look for the files on a path relative to the current CMakeLists.txt.
+ std::string curPath = m_Makefile->GetCurrentDirectory();
+ curPath += "/";
+
os << indent << "<Headers>" << std::endl;
for(Entries::const_iterator f = m_Entries.begin();
f != m_Entries.end(); ++f)
{
- os << indent << " <File name=\"" << f->c_str() << ".h\"/>" << std::endl;
+ std::string file = curPath+*f;
+
+ // Look for the normal include file.
+ std::string header = file+".h";
+ if(cmSystemTools::FileExists(header.c_str()))
+ {
+ os << indent << " <File name=\"" << header.c_str() << "\"/>"
+ << std::endl;
+ }
+ else
+ {
+ cmSystemTools::Error("Unable to find source file ", header.c_str());
+ }
+
+ // Look for an instantiation file.
+ std::string instantiation = file+".txx";
+ if(cmSystemTools::FileExists(instantiation.c_str()))
+ {
+ os << indent << " <File name=\"" << instantiation.c_str()
+ << "\" purpose=\"instantiate\"/>" << std::endl;
+ }
}
os << indent << "</Headers>" << std::endl;
}