cmCableInstantiateClassCommand.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*=========================================================================
  2. Program: Insight Segmentation & Registration Toolkit
  3. Module: $RCSfile$
  4. Language: C++
  5. Date: $Date$
  6. Version: $Revision$
  7. Copyright (c) 2000 National Library of Medicine
  8. All rights reserved.
  9. See COPYRIGHT.txt for copyright details.
  10. =========================================================================*/
  11. #ifndef cmCableInstantiateClassCommand_h
  12. #define cmCableInstantiateClassCommand_h
  13. #include "cmStandardIncludes.h"
  14. #include "cmCablePackageEntryCommand.h"
  15. /** \class cmCableInstantiateClassCommand
  16. * \brief Define a command that generates a rule for explicit template
  17. * instantiations of classes.
  18. *
  19. * cmCableInstantiateCommand is used to generate a rule in a CABLE
  20. * configuration file to create explicit template instantiations of
  21. * classes.
  22. */
  23. class cmCableInstantiateClassCommand : public cmCablePackageEntryCommand
  24. {
  25. public:
  26. /**
  27. * This is a virtual constructor for the command.
  28. */
  29. virtual cmCommand* Clone()
  30. {
  31. return new cmCableInstantiateClassCommand;
  32. }
  33. /**
  34. * The name of the command as specified in CMakeList.txt.
  35. */
  36. virtual const char* GetName() { return "CABLE_INSTANTIATE_CLASS";}
  37. /**
  38. * Succinct documentation.
  39. */
  40. virtual const char* GetTerseDocumentation()
  41. {
  42. return "Define CABLE InstantiationSet of classes in a package.";
  43. }
  44. /**
  45. * More documentation.
  46. */
  47. virtual const char* GetFullDocumentation()
  48. {
  49. return
  50. "CABLE_INSTANTIATE_CLASS(package_name member1 member2 ...)\n"
  51. "Generates an InstantiationSet in the CABLE configuration. It is\n"
  52. "assumed that all members of the set are explicit instantiations of\n"
  53. "template classes (not functions, operators, etc).";
  54. }
  55. virtual void WriteConfiguration() const;
  56. cmTypeMacro(cmCableInstantiateClassCommand, cmCableInstantiateCommand);
  57. protected:
  58. typedef cmCablePackageEntryCommand::Entries Entries;
  59. };
  60. #endif