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.

This commit is contained in:
Brad King
2001-03-20 13:20:59 -05:00
parent 51ef865ef8
commit 8c087d0e7a
17 changed files with 723 additions and 234 deletions

View File

@@ -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<std::string>& 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