diff options
author | Brad King <brad.king@kitware.com> | 2001-02-27 21:28:56 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2001-02-27 21:28:56 (GMT) |
commit | 711c652edbc47e123a22878e39a4944b31e4708e (patch) | |
tree | 771e17e651b09144265b41fae290aa779dfa7d82 /Source/cmCableInstantiateClassCommand.cxx | |
parent | 41d198ed40fcae8cbd2fae163af48d3c518c9628 (diff) | |
download | CMake-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/cmCableInstantiateClassCommand.cxx')
-rw-r--r-- | Source/cmCableInstantiateClassCommand.cxx | 47 |
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; +} |