From 8c087d0e7a2045fead07d3069eefddfa4c515179 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 20 Mar 2001 13:20:59 -0500 Subject: ENH: Added SOURCE_GROUP command and corresponding support code. This command allows CMakeLists files to specify how sources are organized into groups in the generated DSP files and makefiles. --- Source/cmSourceGroupCommand.h | 84 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 Source/cmSourceGroupCommand.h (limited to 'Source/cmSourceGroupCommand.h') diff --git a/Source/cmSourceGroupCommand.h b/Source/cmSourceGroupCommand.h new file mode 100644 index 0000000000..7a48a646cd --- /dev/null +++ b/Source/cmSourceGroupCommand.h @@ -0,0 +1,84 @@ +/*========================================================================= + + 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 cmSourceGroupCommand_h +#define cmSourceGroupCommand_h + +#include "cmStandardIncludes.h" +#include "cmCommand.h" + +/** \class cmSourceGroupCommand + * \brief Adds a cmSourceGroup to the cmMakefile. + * + * cmSourceGroupCommand is used to define cmSourceGroups which split up + * source files in to named, organized groups in the generated makefiles. + */ +class cmSourceGroupCommand : public cmCommand +{ +public: + /** + * This is a virtual constructor for the command. + */ + virtual cmCommand* Clone() + { + return new cmSourceGroupCommand; + } + + /** + * This is called when the command is first encountered in + * the CMakeLists.txt file. + */ + virtual bool Invoke(std::vector& args); + + /** + * The name of the command as specified in CMakeList.txt. + */ + virtual const char* GetName() {return "SOURCE_GROUP";} + + /** + * This determines if the command gets propagated down + * to makefiles located in subdirectories. + */ + virtual bool IsInherited() + { + return true; + } + + /** + * Succinct documentation. + */ + virtual const char* GetTerseDocumentation() + { + return "Define a grouping for sources in the makefile."; + } + + /** + * More documentation. + */ + virtual const char* GetFullDocumentation() + { + return + "SOURCE_GROUP(name regex)\n" + "Defines a new source group. Any file whose name matches the regular\n" + "expression will be placed in this group. The LAST regular expression\n" + "of all defined SOURCE_GROUPs that matches the file will be selected."; + } + + cmTypeMacro(cmSourceGroupCommand, cmCommand); +}; + + + +#endif -- cgit v1.2.1