summaryrefslogtreecommitdiffstats
path: root/Source/cmCableInstantiateClassCommand.h
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/cmCableInstantiateClassCommand.h
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/cmCableInstantiateClassCommand.h')
-rw-r--r--Source/cmCableInstantiateClassCommand.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/Source/cmCableInstantiateClassCommand.h b/Source/cmCableInstantiateClassCommand.h
new file mode 100644
index 0000000..b02b28a
--- /dev/null
+++ b/Source/cmCableInstantiateClassCommand.h
@@ -0,0 +1,75 @@
+/*=========================================================================
+
+ 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.
+
+=========================================================================*/
+#ifndef cmCabilInstantiateClassCommand_h
+#define cmCabilInstantiateClassCommand_h
+
+#include "cmStandardIncludes.h"
+#include "cmCabilInstantiateCommand.h"
+
+/** \class cmCabilInstantiateClassCommand
+ * \brief Define a command that generates a rule for explicit template
+ * instantiations of classes.
+ *
+ * cmCabilInstantiateCommand is used to generate a rule in a CABIL
+ * configuration file to create explicit template instantiations of
+ * classes.
+ */
+class cmCabilInstantiateClassCommand : public cmCabilInstantiateCommand
+{
+public:
+ /**
+ * This is a virtual constructor for the command.
+ */
+ virtual cmCommand* Clone()
+ {
+ return new cmCabilInstantiateClassCommand;
+ }
+
+ /**
+ * The name of the command as specified in CMakeList.txt.
+ */
+ virtual const char* GetName() { return "CABIL_INSTANTIATE_CLASS";}
+
+ /**
+ * Succinct documentation.
+ */
+ virtual const char* GetTerseDocumentation()
+ {
+ return "Define CABIL InstantiationSet of classes.";
+ }
+
+ /**
+ * More documentation.
+ */
+ virtual const char* GetFullDocumentation()
+ {
+ return
+ "CABIL_INSTANTIATE_CLASS(cabil_config_file member1 member2 ...)\n"
+ "Generates an InstantiationSet in the CABIL configuration. It is\n"
+ "assumed that all members of the set are explicit instantiations of\n"
+ "template classes (not functions, operators, etc).";
+ }
+
+ virtual void WriteConfiguration(std::ostream&) const;
+
+ cmTypeMacro(cmCabilInstantiateClassCommand, cmCabilInstantiateCommand);
+protected:
+ typedef cmCabilInstantiateCommand::Elements Elements;
+};
+
+
+
+#endif