diff --git a/Source/cmCableSourceFilesCommand.cxx b/Source/cmCableSourceFilesCommand.cxx index d1dd40dfc..97a6c51b2 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 << "" << std::endl; for(Entries::const_iterator f = m_Entries.begin(); f != m_Entries.end(); ++f) { - os << indent << " 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 << " " + << 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 << " " << std::endl; + } } os << indent << "" << std::endl; }