summaryrefslogtreecommitdiffstats
path: root/Source/cmCableInstantiateClassCommand.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCableInstantiateClassCommand.cxx')
-rw-r--r--Source/cmCableInstantiateClassCommand.cxx47
1 files changed, 47 insertions, 0 deletions
diff --git a/Source/cmCableInstantiateClassCommand.cxx b/Source/cmCableInstantiateClassCommand.cxx
new file mode 100644
index 0000000..2491632
--- /dev/null
+++ b/Source/cmCableInstantiateClassCommand.cxx
@@ -0,0 +1,47 @@
+/*=========================================================================
+
+ Program: Insight Segmentation & Registration Toolkit
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+
+ Copyright (c) 2000 National Library of Medicine
+ All rights reserved.
+
+ See COPYRIGHT.txt for copyright details.
+
+=========================================================================*/
+#include "cmCabilInstantiateClassCommand.h"
+#include "cmCacheManager.h"
+
+#include "cmRegularExpression.h"
+
+
+/**
+ * Write the CABIL configuration code to define this InstantiationSet.
+ * This includes the "class" keyword to do class template instantiations.
+ */
+void cmCabilInstantiateClassCommand::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>class ";
+ if(needCdataBlock.find(e->c_str()))
+ {
+ os << "<![CDATA[" << e->c_str() << "]]>";
+ }
+ else
+ {
+ os << e->c_str();
+ }
+ os << "</Element>" << std::endl;
+ }
+ os << " </InstantiationSet>" << std::endl;
+}