diff options
author | Brad King <brad.king@kitware.com> | 2001-02-26 23:00:49 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2001-02-26 23:00:49 (GMT) |
commit | b908149828f060186cb9c240e505b865ad31494f (patch) | |
tree | 5987dad0bed3478fb5377a6aa0bf59cc34fe999c /Source/cmCableInstantiateCommand.h | |
parent | 8859bd5ac835c639622e169192cbc571d90a3f4c (diff) | |
download | CMake-b908149828f060186cb9c240e505b865ad31494f.zip CMake-b908149828f060186cb9c240e505b865ad31494f.tar.gz CMake-b908149828f060186cb9c240e505b865ad31494f.tar.bz2 |
ENH: Added CABIL commands for configuration file generation.
Diffstat (limited to 'Source/cmCableInstantiateCommand.h')
-rw-r--r-- | Source/cmCableInstantiateCommand.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/Source/cmCableInstantiateCommand.h b/Source/cmCableInstantiateCommand.h new file mode 100644 index 0000000..477fee2 --- /dev/null +++ b/Source/cmCableInstantiateCommand.h @@ -0,0 +1,99 @@ +/*========================================================================= + + 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 cmCabilInstantiateCommand_h +#define cmCabilInstantiateCommand_h + +#include "cmStandardIncludes.h" +#include "cmCabilCommand.h" + +/** \class cmCabilInstantiateCommand + * \brief Define a command that generates a rule for explicit template + * instantiations. + * + * cmCabilInstantiateCommand is used to generate a rule in a CABIL + * configuration file to create explicit template instantiations. + */ +class cmCabilInstantiateCommand : public cmCabilCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmCabilInstantiateCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool Invoke(std::vector<std::string>& args); + + /** + * This is called after all input commands have been processed. + */ + virtual void FinalPass(); + + /** + * This determines if the command gets propagated down + * to makefiles located in subdirectories. + */ + virtual bool IsInherited() + {return true;} + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() { return "CABIL_INSTANTIATE";} + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Define a rule for creating explicit template instantiations."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "CABIL_INSTANTIATE(cabil_config_file member1 member2 ...)"; + } + + virtual void WriteConfiguration(std::ostream&) const; + + cmTypeMacro(cmCabilInstantiateCommand, cmCabilCommand); +private: + typedef std::vector<std::string> Elements; + + /** + * The output file to which to write the configuration. + */ + cmCabilData::OutputFile* m_OutputFile; + + /** + * The elements describing the set of instantiations. + */ + Elements m_Elements; +}; + + + +#endif |