summaryrefslogtreecommitdiffstats
path: root/Source/cmCableInstantiateCommand.cxx
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2001-02-27 21:28:56 (GMT)
committerBrad King <brad.king@kitware.com>2001-02-27 21:28:56 (GMT)
commit711c652edbc47e123a22878e39a4944b31e4708e (patch)
tree771e17e651b09144265b41fae290aa779dfa7d82 /Source/cmCableInstantiateCommand.cxx
parent41d198ed40fcae8cbd2fae163af48d3c518c9628 (diff)
downloadCMake-711c652edbc47e123a22878e39a4944b31e4708e.zip
CMake-711c652edbc47e123a22878e39a4944b31e4708e.tar.gz
CMake-711c652edbc47e123a22878e39a4944b31e4708e.tar.bz2
ENH: Implemented automatic tag generation for CABIL_DEFINE_SET command. Added tag output to WriteConfiguration methods. Added CABIL_INSTANTIATE_CLASS command to generate explicit class template instantiation configuration output.
Diffstat (limited to 'Source/cmCableInstantiateCommand.cxx')
-rw-r--r--Source/cmCableInstantiateCommand.cxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/cmCableInstantiateCommand.cxx b/Source/cmCableInstantiateCommand.cxx
index c82eabb..b30a1c5 100644
--- a/Source/cmCableInstantiateCommand.cxx
+++ b/Source/cmCableInstantiateCommand.cxx
@@ -17,6 +17,7 @@
#include "cmCacheManager.h"
#include "cmCabilDefineSetCommand.h"
+#include "cmRegularExpression.h"
// cmCabilInstantiateCommand
bool cmCabilInstantiateCommand::Invoke(std::vector<std::string>& args)
@@ -97,12 +98,23 @@ void cmCabilInstantiateCommand::FinalPass()
*/
void cmCabilInstantiateCommand::WriteConfiguration(std::ostream& os) const
{
+ cmRegularExpression needCdataBlock("[&<>]");
+
os << std::endl
<< " <InstantiationSet>" << std::endl;
for(Elements::const_iterator e = m_Elements.begin();
e != m_Elements.end(); ++e)
{
- os << " <Element>" << e->c_str() << "</Element>" << std::endl;
+ os << " <Element>";
+ if(needCdataBlock.find(e->c_str()))
+ {
+ os << "<![CDATA[" << e->c_str() << "]]>";
+ }
+ else
+ {
+ os << e->c_str();
+ }
+ os << "</Element>" << std::endl;
}
os << " </InstantiationSet>" << std::endl;
}