diff options
author | Brad King <brad.king@kitware.com> | 2001-03-08 16:30:26 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2001-03-08 16:30:26 (GMT) |
commit | 353f6c3261fdf8003263a8e28d9e657999c720a5 (patch) | |
tree | 2e410c47c6128ebb8b88378e3260d9e695dae700 | |
parent | 4666b017101de1aa9367a8c6d8ad0b8cb03a77c5 (diff) | |
download | CMake-353f6c3261fdf8003263a8e28d9e657999c720a5.zip CMake-353f6c3261fdf8003263a8e28d9e657999c720a5.tar.gz CMake-353f6c3261fdf8003263a8e28d9e657999c720a5.tar.bz2 |
ENH: Added .txx detection for Header block output.
-rw-r--r-- | Source/cmCableSourceFilesCommand.cxx | 26 |
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; } |