1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmDefinePropertyCommand.h,v $
6 Date: $Date: 2008-01-23 15:27:59 $
7 Version: $Revision: 1.5 $
9 Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
16 =========================================================================*/
17 #ifndef cmDefinesPropertyCommand_h
18 #define cmDefinesPropertyCommand_h
20 #include "cmCommand.h"
22 class cmDefinePropertyCommand
: public cmCommand
25 virtual cmCommand
* Clone()
27 return new cmDefinePropertyCommand
;
31 * This is called when the command is first encountered in
34 virtual bool InitialPass(std::vector
<std::string
> const& args
,
35 cmExecutionStatus
&status
);
38 * The name of the command as specified in CMakeList.txt.
40 virtual const char* GetName() { return "define_property";}
43 * Succinct documentation.
45 virtual const char* GetTerseDocumentation()
47 return "Define properties used by CMake.";
51 * Longer documentation.
53 virtual const char* GetFullDocumentation()
56 " define_property(property_name scope_value\n"
57 " short_description\n"
58 " full_description inherit)\n"
59 "Define a property for a scope. scope_value is either GLOBAL, "
60 "DIRECTORY, TARGET, TEST, SOURCE_FILE, VARIABLE or CACHED_VARIABLE. "
61 "The short and full descriptions are used to document the property. "
62 "If inherit is TRUE, it will inherit its value from the next more "
63 "global property if it hasn't been set at the specified scope. "
64 "This means that e.g. a TARGET property inherits it's value from the "
65 "DIRECTORY property with the same name if it hasn't been set for the "
66 "target, and then from GLOBAL if it hasn't been set for the directory."
70 cmTypeMacro(cmDefinePropertyCommand
, cmCommand
);