summaryrefslogtreecommitdiffstats
path: root/Source/cmITKWrapTclCommand.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2002-05-08 17:11:53 (GMT)
committerBrad King <brad.king@kitware.com>2002-05-08 17:11:53 (GMT)
commita83e8170e9dd0a8862c80687cc9c780564670208 (patch)
tree1d03303252b270a214df839736b7bea716734c55 /Source/cmITKWrapTclCommand.h
parent347b0af9cc43133f2151a1d485394740d3a1b54a (diff)
downloadCMake-a83e8170e9dd0a8862c80687cc9c780564670208.zip
CMake-a83e8170e9dd0a8862c80687cc9c780564670208.tar.gz
CMake-a83e8170e9dd0a8862c80687cc9c780564670208.tar.bz2
ENH: Added ITK Tcl wrapping command.
Diffstat (limited to 'Source/cmITKWrapTclCommand.h')
-rw-r--r--Source/cmITKWrapTclCommand.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/Source/cmITKWrapTclCommand.h b/Source/cmITKWrapTclCommand.h
new file mode 100644
index 0000000..6e52ce4
--- /dev/null
+++ b/Source/cmITKWrapTclCommand.h
@@ -0,0 +1,70 @@
+/*=========================================================================
+
+ Program: Insight Segmentation & Registration Toolkit
+ Module: $RCSfile$
+ Language: C++
+ Date: $Date$
+ Version: $Revision$
+
+ Copyright (c) 2002 Insight Consortium. All rights reserved.
+ See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef cmITKWrapTclCommand_h
+#define cmITKWrapTclCommand_h
+
+#include "cmStandardIncludes.h"
+#include "cmCommand.h"
+
+class cmMakeDepend;
+
+/** \class cmITKWrapTclCommand
+ * \brief Run CABLE to generate Tcl wrappers.
+ *
+ * cmITKWrapTclCommand runs CABLE on the specified configuration files
+ * and combines them into a package on a given target.
+ */
+class cmITKWrapTclCommand : public cmCommand
+{
+public:
+ cmITKWrapTclCommand();
+ ~cmITKWrapTclCommand();
+
+ /** This is a virtual constructor for the command. */
+ virtual cmCommand* Clone() { return new cmITKWrapTclCommand; }
+
+ /** This is called when the command is first encountered in
+ * the CMakeLists.txt file. */
+ virtual bool InitialPass(std::vector<std::string> const& args);
+
+ /** The name of the command as specified in CMakeList.txt. */
+ virtual const char* GetName() {return "ITK_WRAP_TCL";}
+
+ /** Succinct documentation. */
+ virtual const char* GetTerseDocumentation()
+ { return "Run CABLE to generate Tcl wrappers."; }
+
+ /** More documentation. */
+ virtual const char* GetFullDocumentation()
+ {
+ return
+ "ITK_WRAP_TCL(target-name config-file1 [config-file2 ...])\n"
+ "Run CABLE on all the configuration files to generate Tcl wrappers.\n"
+ "The generated sources are added to a target of the given name.";
+ }
+
+ cmTypeMacro(cmITKWrapTclCommand, cmCommand);
+protected:
+ cmStdString m_TargetName;
+
+ bool CreateCableRule(const char* configFile);
+ std::string GetCableFromCache() const;
+
+ cmMakeDepend* m_MakeDepend;
+};
+
+#endif