mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 09:54:15 +00:00
96afb12087
This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
94 lines
3.5 KiB
C++
94 lines
3.5 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef cmDefinesPropertyCommand_h
|
|
#define cmDefinesPropertyCommand_h
|
|
|
|
#include "cmCommand.h"
|
|
|
|
class cmDefinePropertyCommand : public cmCommand
|
|
{
|
|
public:
|
|
virtual cmCommand* Clone()
|
|
{
|
|
return new cmDefinePropertyCommand;
|
|
}
|
|
|
|
/**
|
|
* This is called when the command is first encountered in
|
|
* the input file.
|
|
*/
|
|
virtual bool InitialPass(std::vector<std::string> const& args,
|
|
cmExecutionStatus &status);
|
|
|
|
/**
|
|
* The name of the command as specified in CMakeList.txt.
|
|
*/
|
|
virtual const char* GetName() { return "define_property";}
|
|
|
|
/**
|
|
* Succinct documentation.
|
|
*/
|
|
virtual const char* GetTerseDocumentation()
|
|
{
|
|
return "Define and document custom properties.";
|
|
}
|
|
|
|
/**
|
|
* Longer documentation.
|
|
*/
|
|
virtual const char* GetFullDocumentation()
|
|
{
|
|
return
|
|
" define_property(<GLOBAL | DIRECTORY | TARGET | SOURCE |\n"
|
|
" TEST | VARIABLE | CACHED_VARIABLE>\n"
|
|
" PROPERTY <name> [INHERITED]\n"
|
|
" BRIEF_DOCS <brief-doc> [docs...]\n"
|
|
" FULL_DOCS <full-doc> [docs...])\n"
|
|
"Define one property in a scope for use with the "
|
|
"set_property and get_property commands. "
|
|
"This is primarily useful to associate documentation with property "
|
|
"names that may be retrieved with the get_property command. "
|
|
"The first argument determines the kind of scope in which the "
|
|
"property should be used. It must be one of the following:\n"
|
|
" GLOBAL = associated with the global namespace\n"
|
|
" DIRECTORY = associated with one directory\n"
|
|
" TARGET = associated with one target\n"
|
|
" SOURCE = associated with one source file\n"
|
|
" TEST = associated with a test named with add_test\n"
|
|
" VARIABLE = documents a CMake language variable\n"
|
|
" CACHED_VARIABLE = documents a CMake cache variable\n"
|
|
"Note that unlike set_property and get_property no actual scope "
|
|
"needs to be given; only the kind of scope is important.\n"
|
|
"The required PROPERTY option is immediately followed by the name "
|
|
"of the property being defined.\n"
|
|
"If the INHERITED option then the get_property command will chain "
|
|
"up to the next higher scope when the requested property is not "
|
|
"set in the scope given to the command. "
|
|
"DIRECTORY scope chains to GLOBAL. "
|
|
"TARGET, SOURCE, and TEST chain to DIRECTORY.\n"
|
|
"The BRIEF_DOCS and FULL_DOCS options are followed by strings to be "
|
|
"associated with the property as its brief and full documentation. "
|
|
"Corresponding options to the get_property command will retrieve the "
|
|
"documentation.";
|
|
}
|
|
|
|
cmTypeMacro(cmDefinePropertyCommand, cmCommand);
|
|
private:
|
|
std::string PropertyName;
|
|
std::string BriefDocs;
|
|
std::string FullDocs;
|
|
};
|
|
|
|
|
|
|
|
#endif
|