Imported Upstream version 2.8.10.2
[platform/upstream/cmake.git] / Source / cmDocumentVariables.cxx
1 #include "cmDocumentVariables.h"
2 #include "cmake.h"
3
4 #include <cmsys/ios/sstream>
5
6 void cmDocumentVariables::DefineVariables(cmake* cm)
7 {
8   // Subsection: variables defined by cmake, that give
9   // information about the project, and cmake
10   cm->DefineProperty
11     ("CMAKE_AR", cmProperty::VARIABLE,
12      "Name of archiving tool for static libraries.",
13      "This specifies name of the program that creates archive "
14      "or static libraries.",false,
15      "Variables that Provide Information");
16
17   cm->DefineProperty
18     ("CMAKE_COMMAND", cmProperty::VARIABLE,
19      "The full path to the cmake executable.",
20      "This is the full path to the CMake executable cmake which is "
21      "useful from custom commands that want to use the cmake -E "
22      "option for portable system commands. "
23      "(e.g. /usr/local/bin/cmake", false,
24      "Variables that Provide Information");
25   cm->DefineProperty
26     ("CMAKE_BINARY_DIR", cmProperty::VARIABLE,
27      "The path to the top level of the build tree.",
28      "This is the full path to the top level of the current CMake "
29      "build tree. For an in-source build, this would be the same "
30      "as CMAKE_SOURCE_DIR. ", false,
31      "Variables that Provide Information");
32   cm->DefineProperty
33     ("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
34      "The path to the top level of the source tree.",
35      "This is the full path to the top level of the current CMake "
36      "source tree. For an in-source build, this would be the same "
37      "as CMAKE_BINARY_DIR. ", false,
38      "Variables that Provide Information");
39   cm->DefineProperty
40     ("CMAKE_CURRENT_BINARY_DIR", cmProperty::VARIABLE,
41      "The path to the binary directory currently being processed.",
42      "This the full path to the build directory that is currently "
43      "being processed by cmake.  Each directory added by "
44      "add_subdirectory will create a binary directory in the build "
45      "tree, and as it is being processed this variable will be set. "
46      "For in-source builds this is the current source directory "
47      "being processed.", false,
48      "Variables that Provide Information");
49   cm->DefineProperty
50     ("CMAKE_CURRENT_SOURCE_DIR", cmProperty::VARIABLE,
51      "The path to the source directory currently being processed.",
52      "This the full path to the source directory that is currently "
53      "being processed by cmake.  ", false,
54      "Variables that Provide Information");
55
56   cm->DefineProperty
57     ("CMAKE_CURRENT_LIST_FILE", cmProperty::VARIABLE,
58      "Full path to the listfile currently being processed.",
59      "As CMake processes the listfiles in your project this "
60      "variable will always be set to the one currently being "
61      "processed.  "
62      "The value has dynamic scope.  "
63      "When CMake starts processing commands in a source file "
64      "it sets this variable to the location of the file.  "
65      "When CMake finishes processing commands from the file it "
66      "restores the previous value.  "
67      "Therefore the value of the variable inside a macro or "
68      "function is the file invoking the bottom-most entry on "
69      "the call stack, not the file containing the macro or "
70      "function definition."
71      "\n"
72      "See also CMAKE_PARENT_LIST_FILE.",false,
73      "Variables that Provide Information");
74
75   cm->DefineProperty
76     ("CMAKE_CURRENT_LIST_LINE", cmProperty::VARIABLE,
77      "The line number of the current file being processed.",
78      "This is the line number of the file currently being"
79      " processed by cmake.", false,
80      "Variables that Provide Information");
81
82   cm->DefineProperty
83     ("CMAKE_CURRENT_LIST_DIR", cmProperty::VARIABLE,
84      "Full directory of the listfile currently being processed.",
85      "As CMake processes the listfiles in your project this "
86      "variable will always be set to the directory where the listfile which "
87      "is currently being processed (CMAKE_CURRENT_LIST_FILE) is located.  "
88      "The value has dynamic scope.  "
89      "When CMake starts processing commands in a source file "
90      "it sets this variable to the directory where this file is located.  "
91      "When CMake finishes processing commands from the file it "
92      "restores the previous value.  "
93      "Therefore the value of the variable inside a macro or "
94      "function is the directory of the file invoking the bottom-most entry on "
95      "the call stack, not the directory of the file containing the macro or "
96      "function definition."
97      "\n"
98      "See also CMAKE_CURRENT_LIST_FILE.",false,
99      "Variables that Provide Information");
100
101   cm->DefineProperty
102     ("CMAKE_SCRIPT_MODE_FILE", cmProperty::VARIABLE,
103      "Full path to the -P script file currently being processed. ",
104      "When run in -P script mode, CMake sets this variable to the full "
105      "path of the script file. When run to configure a CMakeLists.txt "
106      "file, this variable is not set.", false,
107      "Variables that Provide Information");
108
109   cm->DefineProperty
110     ("CMAKE_ARGC", cmProperty::VARIABLE,
111      "Number of command line arguments passed to CMake in script mode. ",
112      "When run in -P script mode, CMake sets this variable to the number "
113      "of command line arguments. See also CMAKE_ARGV0, 1, 2 ... ", false,
114      "Variables that Provide Information");
115
116   cm->DefineProperty
117     ("CMAKE_ARGV0", cmProperty::VARIABLE,
118      "Command line argument passed to CMake in script mode. ",
119      "When run in -P script mode, CMake sets this variable to "
120      "the first command line argument. It then also sets CMAKE_ARGV1, "
121      "CMAKE_ARGV2, ... and so on, up to the number of command line arguments "
122      "given. See also CMAKE_ARGC.", false,
123      "Variables that Provide Information");
124
125   cm->DefineProperty
126     ("CMAKE_BUILD_TOOL", cmProperty::VARIABLE,
127      "Tool used for the actual build process.",
128      "This variable is set to the program that will be"
129      " needed to build the output of CMake.   If the "
130      "generator selected was Visual Studio 6, the "
131      "CMAKE_BUILD_TOOL will be set to msdev, for "
132      "Unix makefiles it will be set to make or gmake, "
133      "and for Visual Studio 7 it set to devenv.  For "
134      "Nmake Makefiles the value is nmake. This can be "
135      "useful for adding special flags and commands based"
136      " on the final build environment. ", false,
137      "Variables that Provide Information");
138   cm->DefineProperty
139     ("CMAKE_CROSSCOMPILING", cmProperty::VARIABLE,
140      "Is CMake currently cross compiling.",
141      "This variable will be set to true by CMake if CMake is cross "
142      "compiling. Specifically if the build platform is different "
143      "from the target platform.", false,
144      "Variables that Provide Information");
145   cm->DefineProperty
146     ("CMAKE_CACHEFILE_DIR", cmProperty::VARIABLE,
147      "The directory with the CMakeCache.txt file.",
148      "This is the full path to the directory that has the "
149      "CMakeCache.txt file in it.  This is the same as "
150      "CMAKE_BINARY_DIR.", false,
151      "Variables that Provide Information");
152   cm->DefineProperty
153     ("CMAKE_CACHE_MAJOR_VERSION", cmProperty::VARIABLE,
154      "Major version of CMake used to create the CMakeCache.txt file",
155      "This is stores the major version of CMake used to "
156      "write a CMake cache file. It is only different when "
157      "a different version of CMake is run on a previously "
158      "created cache file.", false,
159      "Variables that Provide Information");
160   cm->DefineProperty
161     ("CMAKE_CACHE_MINOR_VERSION", cmProperty::VARIABLE,
162      "Minor version of CMake used to create the CMakeCache.txt file",
163      "This is stores the minor version of CMake used to "
164      "write a CMake cache file. It is only different when "
165      "a different version of CMake is run on a previously "
166      "created cache file.", false,
167      "Variables that Provide Information");
168
169   cm->DefineProperty
170     ("CMAKE_CACHE_PATCH_VERSION", cmProperty::VARIABLE,
171      "Patch version of CMake used to create the CMakeCache.txt file",
172      "This is stores the patch version of CMake used to "
173      "write a CMake cache file. It is only different when "
174      "a different version of CMake is run on a previously "
175      "created cache file.", false,
176      "Variables that Provide Information");
177
178   cm->DefineProperty
179     ("CMAKE_CFG_INTDIR", cmProperty::VARIABLE,
180      "Build-time reference to per-configuration output subdirectory.",
181      "For native build systems supporting multiple configurations "
182      "in the build tree (such as Visual Studio and Xcode), "
183      "the value is a reference to a build-time variable specifying "
184      "the name of the per-configuration output subdirectory.  "
185      "On Makefile generators this evaluates to \".\" because there "
186      "is only one configuration in a build tree.  "
187      "Example values:\n"
188      "  $(IntDir)        = Visual Studio 6\n"
189      "  $(OutDir)        = Visual Studio 7, 8, 9\n"
190      "  $(Configuration) = Visual Studio 10\n"
191      "  $(CONFIGURATION) = Xcode\n"
192      "  .                = Make-based tools\n"
193      "Since these values are evaluated by the native build system, this "
194      "variable is suitable only for use in command lines that will be "
195      "evaluated at build time.  "
196      "Example of intended usage:\n"
197      "  add_executable(mytool mytool.c)\n"
198      "  add_custom_command(\n"
199      "    OUTPUT out.txt\n"
200      "    COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool\n"
201      "            ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt\n"
202      "    DEPENDS mytool in.txt\n"
203      "    )\n"
204      "  add_custom_target(drive ALL DEPENDS out.txt)\n"
205      "Note that CMAKE_CFG_INTDIR is no longer necessary for this purpose "
206      "but has been left for compatibility with existing projects.  "
207      "Instead add_custom_command() recognizes executable target names in "
208      "its COMMAND option, so "
209      "\"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool\" can be "
210      "replaced by just \"mytool\"."
211      "\n"
212      "This variable is read-only.  Setting it is undefined behavior.  "
213      "In multi-configuration build systems the value of this variable "
214      "is passed as the value of preprocessor symbol \"CMAKE_INTDIR\" to "
215      "the compilation of all source files.",false,
216      "Variables that Provide Information");
217
218   cm->DefineProperty
219     ("CMAKE_CTEST_COMMAND", cmProperty::VARIABLE,
220      "Full path to ctest command installed with cmake.",
221      "This is the full path to the CTest executable ctest "
222      "which is useful from custom commands that want "
223      "to use the cmake -E option for portable system "
224      "commands.",false,
225      "Variables that Provide Information");
226
227   cm->DefineProperty
228     ("CMAKE_DL_LIBS", cmProperty::VARIABLE,
229      "Name of library containing dlopen and dlcose.",
230      "The name of the library that has dlopen and "
231      "dlclose in it, usually -ldl on most UNIX machines.",false,
232      "Variables that Provide Information");
233
234   cm->DefineProperty
235     ("CMAKE_EDIT_COMMAND", cmProperty::VARIABLE,
236      "Full path to cmake-gui or ccmake.",
237      "This is the full path to the CMake executable "
238      "that can graphically edit the cache.  For example,"
239      " cmake-gui, ccmake, or cmake -i.",false,
240      "Variables that Provide Information");
241
242   cm->DefineProperty
243     ("CMAKE_GENERATOR", cmProperty::VARIABLE,
244      "The generator used to build the project.",
245      "The name of the generator that is being used to generate the "
246      "build files.  (e.g. \"Unix Makefiles\", "
247      "\"Visual Studio 6\", etc.)",false,
248      "Variables that Provide Information");
249   cm->DefineProperty
250     ("CMAKE_EXTRA_GENERATOR", cmProperty::VARIABLE,
251      "The extra generator used to build the project.",
252      "When using the Eclipse, CodeBlocks or KDevelop generators, CMake "
253      "generates Makefiles (CMAKE_GENERATOR) and additionally project files "
254      "for the respective IDE. This IDE project file generator is stored in "
255      "CMAKE_EXTRA_GENERATOR (e.g. \"Eclipse CDT4\").",false,
256      "Variables that Provide Information");
257   cm->DefineProperty
258     ("CMAKE_HOME_DIRECTORY", cmProperty::VARIABLE,
259      "Path to top of source tree.",
260      "This is the path to the top level of the source tree.",false,
261      "Variables that Provide Information");
262   cm->DefineProperty
263     ("CMAKE_LINK_LIBRARY_SUFFIX", cmProperty::VARIABLE,
264      "The suffix for libraries that you link to.",
265      "The suffix to use for the end of a library, .lib on Windows.",false,
266      "Variables that Provide Information");
267   cm->DefineProperty
268     ("CMAKE_EXECUTABLE_SUFFIX", cmProperty::VARIABLE,
269      "The suffix for executables on this platform.",
270      "The suffix to use for the end of an executable if any, "
271      ".exe on Windows."
272      "\n"
273      "CMAKE_EXECUTABLE_SUFFIX_<LANG> overrides this for language <LANG>."
274      ,false, "Variables that Provide Information");
275   cm->DefineProperty
276     ("CMAKE_MAJOR_VERSION", cmProperty::VARIABLE,
277      "The Major version of cmake (i.e. the 2 in 2.X.X)",
278      "This specifies the major version of the CMake executable"
279      " being run.",false,
280      "Variables that Provide Information");
281   cm->DefineProperty
282     ("CMAKE_MAKE_PROGRAM", cmProperty::VARIABLE,
283      "See CMAKE_BUILD_TOOL.",
284      "This variable is around for backwards compatibility, "
285      "see CMAKE_BUILD_TOOL.",false,
286      "Variables that Provide Information");
287   cm->DefineProperty
288     ("CMAKE_VS_PLATFORM_TOOLSET", cmProperty::VARIABLE,
289      "Visual Studio Platform Toolset name.",
290      "VS 10 and above use MSBuild under the hood and support multiple "
291      "compiler toolchains.  "
292      "CMake may specify a toolset explicitly, such as \"v110\" for "
293      "VS 11 or \"Windows7.1SDK\" for 64-bit support in VS 10 Express.  "
294      "CMake provides the name of the chosen toolset in this variable."
295      ,false,
296      "Variables that Provide Information");
297   cm->DefineProperty
298     ("CMAKE_MINOR_VERSION", cmProperty::VARIABLE,
299      "The Minor version of cmake (i.e. the 4 in X.4.X).",
300      "This specifies the minor version of the CMake"
301      " executable being run.",false,
302      "Variables that Provide Information");
303   cm->DefineProperty
304     ("CMAKE_PATCH_VERSION", cmProperty::VARIABLE,
305      "The patch version of cmake (i.e. the 3 in X.X.3).",
306      "This specifies the patch version of the CMake"
307      " executable being run.",false,
308      "Variables that Provide Information");
309   cm->DefineProperty
310     ("CMAKE_TWEAK_VERSION", cmProperty::VARIABLE,
311      "The tweak version of cmake (i.e. the 1 in X.X.X.1).",
312      "This specifies the tweak version of the CMake executable being run.  "
313      "Releases use tweak < 20000000 and development versions use the date "
314      "format CCYYMMDD for the tweak level."
315      ,false, "Variables that Provide Information");
316   cm->DefineProperty
317     ("CMAKE_VERSION", cmProperty::VARIABLE,
318      "The full version of cmake in major.minor.patch[.tweak[-id]] format.",
319      "This specifies the full version of the CMake executable being run.  "
320      "This variable is defined by versions 2.6.3 and higher.  "
321      "See variables CMAKE_MAJOR_VERSION, CMAKE_MINOR_VERSION, "
322      "CMAKE_PATCH_VERSION, and CMAKE_TWEAK_VERSION "
323      "for individual version components.  "
324      "The [-id] component appears in non-release versions "
325      "and may be arbitrary text.", false,
326      "Variables that Provide Information");
327
328   cm->DefineProperty
329     ("CMAKE_PARENT_LIST_FILE", cmProperty::VARIABLE,
330      "Full path to the parent listfile of the one currently being processed.",
331      "As CMake processes the listfiles in your project this "
332      "variable will always be set to the listfile that included "
333      "or somehow invoked the one currently being "
334      "processed. See also CMAKE_CURRENT_LIST_FILE.",false,
335      "Variables that Provide Information");
336
337   cm->DefineProperty
338     ("CMAKE_PROJECT_NAME", cmProperty::VARIABLE,
339      "The name of the current project.",
340      "This specifies name of the current project from"
341      " the closest inherited PROJECT command.",false,
342      "Variables that Provide Information");
343   cm->DefineProperty
344     ("CMAKE_RANLIB", cmProperty::VARIABLE,
345      "Name of randomizing tool for static libraries.",
346      "This specifies name of the program that randomizes "
347      "libraries on UNIX, not used on Windows, but may be present.",false,
348      "Variables that Provide Information");
349   cm->DefineProperty
350     ("CMAKE_ROOT", cmProperty::VARIABLE,
351      "Install directory for running cmake.",
352      "This is the install root for the running CMake and"
353      " the Modules directory can be found here. This is"
354      " commonly used in this format: ${CMAKE_ROOT}/Modules",false,
355      "Variables that Provide Information");
356   cm->DefineProperty
357     ("CMAKE_SIZEOF_VOID_P", cmProperty::VARIABLE,
358      "Size of a void pointer.",
359      "This is set to the size of a pointer on the machine, "
360      "and is determined by a try compile. If a 64 bit size "
361      "is found, then the library search path is modified to "
362      "look for 64 bit libraries first.",false,
363      "Variables that Provide Information");
364   cm->DefineProperty
365     ("CMAKE_SKIP_RPATH", cmProperty::VARIABLE,
366      "If true, do not add run time path information.",
367      "If this is set to TRUE, then the rpath information "
368      "is not added to compiled executables.  The default "
369      "is to add rpath information if the platform supports it.  "
370      "This allows for easy running from the build tree.  To omit RPATH "
371      "in the install step, but not the build step, use "
372      "CMAKE_SKIP_INSTALL_RPATH instead.",false,
373      "Variables that Provide Information");
374   cm->DefineProperty
375     ("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
376      "Source directory for project.",
377      "This is the top level source directory for the project. "
378      "It corresponds to the source directory given to "
379      "cmake-gui or ccmake.",false,
380      "Variables that Provide Information");
381   cm->DefineProperty
382     ("CMAKE_STANDARD_LIBRARIES", cmProperty::VARIABLE,
383      "Libraries linked into every executable and shared library.",
384      "This is the list of libraries that are linked "
385      "into all executables and libraries.",false,
386      "Variables that Provide Information");
387   cm->DefineProperty
388     ("CMAKE_VERBOSE_MAKEFILE", cmProperty::VARIABLE,
389      "Create verbose makefiles if on.",
390      "This variable defaults to false. You can set "
391      "this variable to true to make CMake produce verbose "
392      "makefiles that show each command line as it is used.",false,
393      "Variables that Provide Information");
394   cm->DefineProperty
395     ("PROJECT_BINARY_DIR", cmProperty::VARIABLE,
396      "Full path to build directory for project.",
397      "This is the binary directory of the most recent "
398      "PROJECT command.",false,"Variables that Provide Information");
399   cm->DefineProperty
400     ("PROJECT_NAME", cmProperty::VARIABLE,
401      "Name of the project given to the project command.",
402      "This is the name given to the most "
403      "recent PROJECT command. ",false,
404      "Variables that Provide Information");
405   cm->DefineProperty
406     ("PROJECT_SOURCE_DIR", cmProperty::VARIABLE,
407      "Top level source directory for the current project.",
408      "This is the source directory of the most recent "
409      "PROJECT command.",false,
410      "Variables that Provide Information");
411   cm->DefineProperty
412     ("[Project name]_BINARY_DIR", cmProperty::VARIABLE,
413      "Top level binary directory for the named project.",
414      "A variable is created with the name used in the PROJECT "
415      "command, and is the binary directory for the project.  "
416      " This can be useful when SUBDIR is used to connect "
417      "several projects.",false,
418      "Variables that Provide Information");
419   cm->DefineProperty
420     ("[Project name]_SOURCE_DIR", cmProperty::VARIABLE,
421      "Top level source directory for the named project.",
422      "A variable is created with the name used in the PROJECT "
423      "command, and is the source directory for the project."
424      "   This can be useful when add_subdirectory "
425      "is used to connect several projects.",false,
426      "Variables that Provide Information");
427
428   cm->DefineProperty
429     ("CMAKE_IMPORT_LIBRARY_PREFIX", cmProperty::VARIABLE,
430      "The prefix for import libraries that you link to.",
431      "The prefix to use for the name of an import library if used "
432      "on this platform."
433      "\n"
434      "CMAKE_IMPORT_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>."
435      ,false, "Variables that Provide Information");
436   cm->DefineProperty
437     ("CMAKE_IMPORT_LIBRARY_SUFFIX", cmProperty::VARIABLE,
438      "The suffix for import  libraries that you link to.",
439      "The suffix to use for the end of an import library if used "
440      "on this platform."
441      "\n"
442      "CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>."
443      ,false, "Variables that Provide Information");
444   cm->DefineProperty
445     ("CMAKE_SHARED_LIBRARY_PREFIX", cmProperty::VARIABLE,
446      "The prefix for shared libraries that you link to.",
447      "The prefix to use for the name of a shared library, lib on UNIX."
448      "\n"
449      "CMAKE_SHARED_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>."
450      ,false, "Variables that Provide Information");
451   cm->DefineProperty
452     ("CMAKE_SHARED_LIBRARY_SUFFIX", cmProperty::VARIABLE,
453      "The suffix for shared libraries that you link to.",
454      "The suffix to use for the end of a shared library, .dll on Windows."
455      "\n"
456      "CMAKE_SHARED_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>."
457      ,false, "Variables that Provide Information");
458   cm->DefineProperty
459     ("CMAKE_SHARED_MODULE_PREFIX", cmProperty::VARIABLE,
460      "The prefix for loadable modules that you link to.",
461      "The prefix to use for the name of a loadable module on this platform."
462      "\n"
463      "CMAKE_SHARED_MODULE_PREFIX_<LANG> overrides this for language <LANG>."
464      ,false, "Variables that Provide Information");
465   cm->DefineProperty
466     ("CMAKE_SHARED_MODULE_SUFFIX", cmProperty::VARIABLE,
467      "The suffix for shared libraries that you link to.",
468      "The suffix to use for the end of a loadable module on this platform"
469      "\n"
470      "CMAKE_SHARED_MODULE_SUFFIX_<LANG> overrides this for language <LANG>."
471      ,false, "Variables that Provide Information");
472   cm->DefineProperty
473     ("CMAKE_STATIC_LIBRARY_PREFIX", cmProperty::VARIABLE,
474      "The prefix for static libraries that you link to.",
475      "The prefix to use for the name of a static library, lib on UNIX."
476      "\n"
477      "CMAKE_STATIC_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>."
478      ,false, "Variables that Provide Information");
479   cm->DefineProperty
480     ("CMAKE_STATIC_LIBRARY_SUFFIX", cmProperty::VARIABLE,
481      "The suffix for static libraries that you link to.",
482      "The suffix to use for the end of a static library, .lib on Windows."
483      "\n"
484      "CMAKE_STATIC_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>."
485      ,false, "Variables that Provide Information");
486   cm->DefineProperty
487     ("CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES", cmProperty::VARIABLE,
488      "Additional suffixes for shared libraries.",
489      "Extensions for shared libraries other than that specified by "
490      "CMAKE_SHARED_LIBRARY_SUFFIX, if any.  "
491      "CMake uses this to recognize external shared library files during "
492      "analysis of libraries linked by a target.",
493      false,
494      "Variables that Provide Information");
495
496
497   // Variables defined by cmake, that change the behavior
498   // of cmake
499
500   cm->DefineProperty
501     ("CMAKE_POLICY_DEFAULT_CMP<NNNN>",  cmProperty::VARIABLE,
502      "Default for CMake Policy CMP<NNNN> when it is otherwise left unset.",
503      "Commands cmake_minimum_required(VERSION) and cmake_policy(VERSION) "
504      "by default leave policies introduced after the given version unset.  "
505      "Set CMAKE_POLICY_DEFAULT_CMP<NNNN> to OLD or NEW to specify the "
506      "default for policy CMP<NNNN>, where <NNNN> is the policy number."
507      "\n"
508      "This variable should not be set by a project in CMake code; "
509      "use cmake_policy(SET) instead.  "
510      "Users running CMake may set this variable in the cache "
511      "(e.g. -DCMAKE_POLICY_DEFAULT_CMP<NNNN>=<OLD|NEW>) "
512      "to set a policy not otherwise set by the project.  "
513      "Set to OLD to quiet a policy warning while using old behavior "
514      "or to NEW to try building the project with new behavior.",
515      false,
516      "Variables That Change Behavior");
517
518     cm->DefineProperty
519     ("CMAKE_AUTOMOC_RELAXED_MODE",  cmProperty::VARIABLE,
520      "Switch between strict and relaxed automoc mode.",
521      "By default, automoc behaves exactly as described in the documentation "
522      "of the AUTOMOC target property.  "
523      "When set to TRUE, it accepts more input and tries to find the correct "
524      "input file for moc even if it differs from the documented behaviour. "
525      "In this mode it e.g. also checks whether a header file is intended to "
526      "be processed by moc when a \"foo.moc\" file has been included.\n"
527      "Relaxed mode has to be enabled for KDE4 compatibility.",
528      false,
529      "Variables That Change Behavior");
530
531     cm->DefineProperty
532     ("CMAKE_INSTALL_DEFAULT_COMPONENT_NAME",  cmProperty::VARIABLE,
533      "Default component used in install() commands.",
534      "If an install() command is used without the COMPONENT argument, "
535      "these files will be grouped into a default component. The name of this "
536      "default install component will be taken from this variable.  "
537      "It defaults to \"Unspecified\". ",
538      false,
539      "Variables That Change Behavior");
540
541     cm->DefineProperty
542     ("CMAKE_FIND_LIBRARY_PREFIXES",  cmProperty::VARIABLE,
543      "Prefixes to prepend when looking for libraries.",
544      "This specifies what prefixes to add to library names when "
545      "the find_library command looks for libraries. On UNIX "
546      "systems this is typically lib, meaning that when trying "
547      "to find the foo library it will look for libfoo.",
548      false,
549      "Variables That Change Behavior");
550
551     cm->DefineProperty
552     ("CMAKE_FIND_LIBRARY_SUFFIXES",  cmProperty::VARIABLE,
553      "Suffixes to append when looking for libraries.",
554      "This specifies what suffixes to add to library names when "
555      "the find_library command looks for libraries. On Windows "
556      "systems this is typically .lib and .dll, meaning that when trying "
557      "to find the foo library it will look for foo.dll etc.",
558      false,
559      "Variables That Change Behavior");
560
561     cm->DefineProperty
562     ("CMAKE_CONFIGURATION_TYPES",  cmProperty::VARIABLE,
563      "Specifies the available build types.",
564      "This specifies what build types will be available such as "
565      "Debug, Release, RelWithDebInfo etc. This has reasonable defaults "
566      "on most platforms. But can be extended to provide other "
567      "build types. See also CMAKE_BUILD_TYPE.",
568      false,
569      "Variables That Change Behavior");
570
571     cm->DefineProperty
572     ("CMAKE_BUILD_TYPE",  cmProperty::VARIABLE,
573      "Specifies the build type for make based generators.",
574      "This specifies what build type will be built in this tree. "
575      " Possible values are empty, Debug, Release, RelWithDebInfo"
576      " and MinSizeRel. This variable is only supported for "
577      "make based generators. If this variable is supported, "
578      "then CMake will also provide initial values for the "
579      "variables with the name "
580      " CMAKE_C_FLAGS_[DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL]."
581      " For example, if CMAKE_BUILD_TYPE is Debug, then "
582      "CMAKE_C_FLAGS_DEBUG will be added to the CMAKE_C_FLAGS.",false,
583      "Variables That Change Behavior");
584
585   cm->DefineProperty
586     ("CMAKE_BACKWARDS_COMPATIBILITY", cmProperty::VARIABLE,
587      "Version of cmake required to build project",
588      "From the point of view of backwards compatibility, this "
589      "specifies what version of CMake should be supported. By "
590      "default this value is the version number of CMake that "
591      "you are running. You can set this to an older version of"
592      " CMake to support deprecated commands of CMake in projects"
593      " that were written to use older versions of CMake. This "
594      "can be set by the user or set at the beginning of a "
595      "CMakeLists file.",false,
596      "Variables That Change Behavior");
597
598   cm->DefineProperty
599     ("CMAKE_INSTALL_PREFIX", cmProperty::VARIABLE,
600      "Install directory used by install.",
601      "If \"make install\" is invoked or INSTALL is built"
602      ", this directory is pre-pended onto all install "
603      "directories. This variable defaults to /usr/local"
604      " on UNIX and c:/Program Files on Windows.\n"
605      "On UNIX one can use the DESTDIR mechanism in order"
606      " to relocate the whole installation. "
607      "DESTDIR means DESTination DIRectory. It is "
608      "commonly used by makefile users "
609      "in order to install software at non-default location. "
610      "It is usually invoked like this:\n"
611      " make DESTDIR=/home/john install\n"
612      "which will install the concerned software using the"
613      " installation prefix, e.g. \"/usr/local\" pre-pended with "
614      "the DESTDIR value which finally gives \"/home/john/usr/local\".\n"
615      "WARNING: DESTDIR may not be used on Windows because installation"
616      " prefix usually contains a drive letter like in \"C:/Program Files\""
617      " which cannot be pre-pended with some other prefix."
618      ,false,
619      "Variables That Change Behavior");
620
621   cm->DefineProperty
622     ("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY", cmProperty::VARIABLE,
623      "Don't make the install target depend on the all target.",
624      "By default, the \"install\" target depends on the \"all\" target. "
625      "This has the effect, that when \"make install\" is invoked or INSTALL "
626      "is built, first the \"all\" target is built, then the installation "
627      "starts. "
628      "If CMAKE_SKIP_INSTALL_ALL_DEPENDENCY is set to TRUE, this dependency "
629      "is not created, so the installation process will start immediately, "
630      "independent from whether the project has been completely built or not."
631      ,false,
632      "Variables That Change Behavior");
633
634   cm->DefineProperty
635     ("CMAKE_MODULE_PATH", cmProperty::VARIABLE,
636      "List of directories to search for CMake modules.",
637      "Commands like include() and find_package() search for files in "
638      "directories listed by this variable before checking the default "
639      "modules that come with CMake.",
640      false,
641      "Variables That Change Behavior");
642
643   cm->DefineProperty
644     ("CMAKE_PREFIX_PATH", cmProperty::VARIABLE,
645      "Path used for searching by FIND_XXX(), with appropriate suffixes added.",
646      "Specifies a path which will be used by the FIND_XXX() commands. It "
647      "contains the \"base\" directories, the FIND_XXX() commands append "
648      "appropriate subdirectories to the base directories. So FIND_PROGRAM() "
649      "adds /bin to each of the directories in the path, FIND_LIBRARY() "
650      "appends /lib to each of the directories, and FIND_PATH() and "
651      "FIND_FILE() append /include . By default it is empty, it is intended "
652      "to be set by the project. See also CMAKE_SYSTEM_PREFIX_PATH, "
653      "CMAKE_INCLUDE_PATH, CMAKE_LIBRARY_PATH, CMAKE_PROGRAM_PATH.", false,
654      "Variables That Change Behavior");
655
656   cm->DefineProperty
657     ("CMAKE_INCLUDE_PATH", cmProperty::VARIABLE,
658      "Path used for searching by FIND_FILE() and FIND_PATH().",
659      "Specifies a path which will be used both by FIND_FILE() and "
660      "FIND_PATH(). Both commands will check each of the contained directories "
661      "for the existence of the file which is currently searched. By default "
662      "it is empty, it is intended to be set by the project. See also "
663      "CMAKE_SYSTEM_INCLUDE_PATH, CMAKE_PREFIX_PATH.", false,
664      "Variables That Change Behavior");
665
666   cm->DefineProperty
667     ("CMAKE_LIBRARY_PATH", cmProperty::VARIABLE,
668      "Path used for searching by FIND_LIBRARY().",
669      "Specifies a path which will be used by FIND_LIBRARY(). FIND_LIBRARY() "
670      "will check each of the contained directories for the existence of the "
671      "library which is currently searched. By default it is empty, it is "
672      "intended to be set by the project. See also CMAKE_SYSTEM_LIBRARY_PATH, "
673      "CMAKE_PREFIX_PATH.", false,
674      "Variables That Change Behavior");
675
676   cm->DefineProperty
677     ("CMAKE_PROGRAM_PATH", cmProperty::VARIABLE,
678      "Path used for searching by FIND_PROGRAM().",
679      "Specifies a path which will be used by FIND_PROGRAM(). FIND_PROGRAM() "
680      "will check each of the contained directories for the existence of the "
681      "program which is currently searched. By default it is empty, it is "
682      "intended to be set by the project. See also CMAKE_SYSTEM_PROGRAM_PATH, "
683      " CMAKE_PREFIX_PATH.", false,
684      "Variables That Change Behavior");
685
686   cm->DefineProperty
687     ("CMAKE_SYSTEM_PREFIX_PATH", cmProperty::VARIABLE,
688      "Path used for searching by FIND_XXX(), with appropriate suffixes added.",
689      "Specifies a path which will be used by the FIND_XXX() commands. It "
690      "contains the \"base\" directories, the FIND_XXX() commands append "
691      "appropriate subdirectories to the base directories. So FIND_PROGRAM() "
692      "adds /bin to each of the directories in the path, FIND_LIBRARY() "
693      "appends /lib to each of the directories, and FIND_PATH() and "
694      "FIND_FILE() append /include . By default this contains the standard "
695      "directories for the current system. It is NOT intended "
696      "to be modified by the project, use CMAKE_PREFIX_PATH for this. See also "
697      "CMAKE_SYSTEM_INCLUDE_PATH, CMAKE_SYSTEM_LIBRARY_PATH, "
698      "CMAKE_SYSTEM_PROGRAM_PATH, and CMAKE_SYSTEM_IGNORE_PATH.", false,
699      "Variables That Change Behavior");
700
701   cm->DefineProperty
702     ("CMAKE_SYSTEM_IGNORE_PATH", cmProperty::VARIABLE,
703      "Path to be ignored by FIND_XXX() commands.",
704      "Specifies directories to be ignored by searches in FIND_XXX() "
705      "commands.  "
706      "This is useful in cross-compiled environments where some system "
707      "directories contain incompatible but possibly linkable libraries. For "
708      "example, on cross-compiled cluster environments, this allows a user to "
709      "ignore directories containing libraries meant for the front-end "
710      "machine that modules like FindX11 (and others) would normally search. "
711      "By default this contains a list of directories containing incompatible "
712      "binaries for the host system. "
713      "See also CMAKE_SYSTEM_PREFIX_PATH, CMAKE_SYSTEM_LIBRARY_PATH, "
714      "CMAKE_SYSTEM_INCLUDE_PATH, and CMAKE_SYSTEM_PROGRAM_PATH.", false,
715      "Variables That Change Behavior");
716
717   cm->DefineProperty
718     ("CMAKE_IGNORE_PATH", cmProperty::VARIABLE,
719      "Path to be ignored by FIND_XXX() commands.",
720      "Specifies directories to be ignored by searches in FIND_XXX() "
721      "commands.  "
722      "This is useful in cross-compiled environments where some system "
723      "directories contain incompatible but possibly linkable libraries. For "
724      "example, on cross-compiled cluster environments, this allows a user to "
725      "ignore directories containing libraries meant for the front-end "
726      "machine that modules like FindX11 (and others) would normally search. "
727      "By default this is empty; it is intended to be set by the project. "
728      "Note that CMAKE_IGNORE_PATH takes a list of directory names, NOT a "
729      "list of prefixes. If you want to ignore paths under prefixes (bin, "
730      "include, lib, etc.), you'll need to specify them explicitly. "
731      "See also CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_INCLUDE_PATH, "
732      "CMAKE_PROGRAM_PATH.", false,
733      "Variables That Change Behavior");
734
735   cm->DefineProperty
736     ("CMAKE_SYSTEM_INCLUDE_PATH", cmProperty::VARIABLE,
737      "Path used for searching by FIND_FILE() and FIND_PATH().",
738      "Specifies a path which will be used both by FIND_FILE() and "
739      "FIND_PATH(). Both commands will check each of the contained directories "
740      "for the existence of the file which is currently searched. By default "
741      "it contains the standard directories for the current system. It is "
742      "NOT intended to be modified by the project, use CMAKE_INCLUDE_PATH "
743      "for this. See also CMAKE_SYSTEM_PREFIX_PATH.", false,
744      "Variables That Change Behavior");
745
746   cm->DefineProperty
747     ("CMAKE_SYSTEM_LIBRARY_PATH", cmProperty::VARIABLE,
748      "Path used for searching by FIND_LIBRARY().",
749      "Specifies a path which will be used by FIND_LIBRARY(). FIND_LIBRARY() "
750      "will check each of the contained directories for the existence of the "
751      "library which is currently searched. By default it contains the "
752      "standard directories for the current system. It is NOT intended to be "
753      "modified by the project, use CMAKE_LIBRARY_PATH for this. See "
754      "also CMAKE_SYSTEM_PREFIX_PATH.", false,
755      "Variables That Change Behavior");
756
757   cm->DefineProperty
758     ("CMAKE_SYSTEM_PROGRAM_PATH", cmProperty::VARIABLE,
759      "Path used for searching by FIND_PROGRAM().",
760      "Specifies a path which will be used by FIND_PROGRAM(). FIND_PROGRAM() "
761      "will check each of the contained directories for the existence of the "
762      "program which is currently searched. By default it contains the "
763      "standard directories for the current system. It is NOT intended to be "
764      "modified by the project, use CMAKE_PROGRAM_PATH for this. See also "
765      "CMAKE_SYSTEM_PREFIX_PATH.", false,
766      "Variables That Change Behavior");
767
768   cm->DefineProperty
769     ("CMAKE_DISABLE_FIND_PACKAGE_<PackageName>", cmProperty::VARIABLE,
770      "Variable for disabling find_package() calls.",
771      "Every non-REQUIRED find_package() call in a project can be disabled "
772      "by setting the variable CMAKE_DISABLE_FIND_PACKAGE_<PackageName> to "
773      "TRUE. This can be used to build a project without an optional package, "
774      "although that package is installed.\n"
775      "This switch should be used during the initial CMake run. Otherwise if "
776      "the package has already been found in a previous CMake run, the "
777      "variables which have been stored in the cache will still be there. "
778      "In the case it is recommended to remove the cache variables for "
779      "this package from the cache using the cache editor or cmake -U", false,
780      "Variables That Change Behavior");
781
782   cm->DefineProperty
783     ("CMAKE_FIND_PACKAGE_WARN_NO_MODULE", cmProperty::VARIABLE,
784      "Tell find_package to warn if called without an explicit mode.",
785      "If find_package is called without an explicit mode option "
786      "(MODULE, CONFIG or NO_MODULE) and no Find<pkg>.cmake module is "
787      "in CMAKE_MODULE_PATH then CMake implicitly assumes that the "
788      "caller intends to search for a package configuration file.  "
789      "If no package configuration file is found then the wording "
790      "of the failure message must account for both the case that the "
791      "package is really missing and the case that the project has a "
792      "bug and failed to provide the intended Find module.  "
793      "If instead the caller specifies an explicit mode option then "
794      "the failure message can be more specific."
795      "\n"
796      "Set CMAKE_FIND_PACKAGE_WARN_NO_MODULE to TRUE to tell find_package "
797      "to warn when it implicitly assumes Config mode.  "
798      "This helps developers enforce use of an explicit mode in all calls "
799      "to find_package within a project.", false,
800      "Variables That Change Behavior");
801
802   cm->DefineProperty
803     ("CMAKE_USER_MAKE_RULES_OVERRIDE", cmProperty::VARIABLE,
804      "Specify a CMake file that overrides platform information.",
805      "CMake loads the specified file while enabling support for each "
806      "language from either the project() or enable_language() commands.  "
807      "It is loaded after CMake's builtin compiler and platform information "
808      "modules have been loaded but before the information is used.  "
809      "The file may set platform information variables to override CMake's "
810      "defaults."
811      "\n"
812      "This feature is intended for use only in overriding information "
813      "variables that must be set before CMake builds its first test "
814      "project to check that the compiler for a language works.  "
815      "It should not be used to load a file in cases that a normal include() "
816      "will work.  "
817      "Use it only as a last resort for behavior that cannot be achieved "
818      "any other way.  "
819      "For example, one may set CMAKE_C_FLAGS_INIT to change the default "
820      "value used to initialize CMAKE_C_FLAGS before it is cached.  "
821      "The override file should NOT be used to set anything that could "
822      "be set after languages are enabled, such as variables like "
823      "CMAKE_RUNTIME_OUTPUT_DIRECTORY that affect the placement of binaries.  "
824      "Information set in the file will be used for try_compile and try_run "
825      "builds too."
826      ,false,
827      "Variables That Change Behavior");
828
829   cm->DefineProperty
830     ("BUILD_SHARED_LIBS", cmProperty::VARIABLE,
831      "Global flag to cause add_library to create shared libraries if on.",
832      "If present and true, this will cause all libraries to be "
833      "built shared unless the library was explicitly added as a "
834      "static library.  This variable is often added to projects "
835      "as an OPTION so that each user of a project can decide if "
836      "they want to build the project using shared or static "
837      "libraries.",false,
838      "Variables That Change Behavior");
839
840   cm->DefineProperty
841     ("CMAKE_NOT_USING_CONFIG_FLAGS", cmProperty::VARIABLE,
842      "Skip _BUILD_TYPE flags if true.",
843      "This is an internal flag used by the generators in "
844      "CMake to tell CMake to skip the _BUILD_TYPE flags.",false,
845      "Variables That Change Behavior");
846
847   cm->DefineProperty
848     ("CMAKE_MFC_FLAG", cmProperty::VARIABLE,
849      "Tell cmake to use MFC for an executable or dll.",
850      "This can be set in a CMakeLists.txt file and will "
851      "enable MFC in the application.  It should be set "
852      "to 1 for the static MFC library, and 2 for "
853      "the shared MFC library.  This is used in Visual "
854      "Studio 6 and 7 project files.   The CMakeSetup "
855      "dialog used MFC and the CMakeLists.txt looks like this:\n"
856      "  add_definitions(-D_AFXDLL)\n"
857      "  set(CMAKE_MFC_FLAG 2)\n"
858      "  add_executable(CMakeSetup WIN32 ${SRCS})\n",false,
859      "Variables That Change Behavior");
860
861   cm->DefineProperty
862     ("CMAKE_COLOR_MAKEFILE", cmProperty::VARIABLE,
863      "Enables color output when using the Makefile generator.",
864      "When enabled, the generated Makefiles will produce colored output. "
865      "Default is ON.",false,
866      "Variables That Change Behavior");
867
868   cm->DefineProperty
869     ("CMAKE_ABSOLUTE_DESTINATION_FILES", cmProperty::VARIABLE,
870       "List of files which have been installed using "
871       " an ABSOLUTE DESTINATION path.",
872       "This variable is defined by CMake-generated cmake_install.cmake "
873       "scripts."
874       " It can be used (read-only) by program or script that source those"
875       " install scripts. This is used by some CPack generators (e.g. RPM).",
876       false,
877       "Variables That Change Behavior");
878
879   cm->DefineProperty
880     ("CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE,
881       "Ask cmake_install.cmake script to warn each time a file with "
882       "absolute INSTALL DESTINATION is encountered.",
883       "This variable is used by CMake-generated cmake_install.cmake"
884       " scripts. If ones set this variable to ON while running the"
885       " script, it may get warning messages from the script.", false,
886       "Variables That Change Behavior");
887
888   cm->DefineProperty
889     ("CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE,
890       "Ask cmake_install.cmake script to error out as soon as "
891       "a file with absolute INSTALL DESTINATION is encountered.",
892       "The fatal error is emitted before the installation of "
893       "the offending file takes place."
894       " This variable is used by CMake-generated cmake_install.cmake"
895       " scripts. If ones set this variable to ON while running the"
896       " script, it may get fatal error messages from the script.",false,
897       "Variables That Change Behavior");
898
899   // Variables defined by CMake that describe the system
900
901   cm->DefineProperty
902     ("CMAKE_SYSTEM", cmProperty::VARIABLE,
903      "Name of system cmake is compiling for.",
904      "This variable is the composite of CMAKE_SYSTEM_NAME "
905      "and CMAKE_SYSTEM_VERSION, like this "
906      "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}. "
907      "If CMAKE_SYSTEM_VERSION is not set, then "
908      "CMAKE_SYSTEM is the same as CMAKE_SYSTEM_NAME.",false,
909      "Variables That Describe the System");
910   cm->DefineProperty
911     ("CMAKE_SYSTEM_NAME", cmProperty::VARIABLE,
912      "Name of the OS CMake is building for.",
913      "This is the name of the operating system on "
914      "which CMake is targeting.   On systems that "
915      "have the uname command, this variable is set "
916      "to the output of uname -s.  Linux, Windows, "
917      " and Darwin for Mac OSX are the values found "
918      " on the big three operating systems."  ,false,
919      "Variables That Describe the System");
920   cm->DefineProperty
921     ("CMAKE_SYSTEM_PROCESSOR", cmProperty::VARIABLE,
922      "The name of the CPU CMake is building for.",
923      "On systems that support uname, this variable is "
924      "set to the output of uname -p, on windows it is "
925      "set to the value of the environment variable "
926      "PROCESSOR_ARCHITECTURE",false,
927      "Variables That Describe the System");
928   cm->DefineProperty
929     ("CMAKE_SYSTEM_VERSION", cmProperty::VARIABLE,
930      "OS version CMake is building for.",
931      "A numeric version string for the system, on "
932      "systems that support uname, this variable is "
933      "set to the output of uname -r. On other "
934      "systems this is set to major-minor version numbers.",false,
935      "Variables That Describe the System");
936   cm->DefineProperty
937     ("CMAKE_LIBRARY_ARCHITECTURE", cmProperty::VARIABLE,
938      "Target architecture library directory name, if detected.",
939      "This is the value of CMAKE_<lang>_LIBRARY_ARCHITECTURE as "
940      "detected for one of the enabled languages.",false,
941      "Variables That Describe the System");
942   cm->DefineProperty
943     ("CMAKE_LIBRARY_ARCHITECTURE_REGEX", cmProperty::VARIABLE,
944      "Regex matching possible target architecture library directory names.",
945      "This is used to detect CMAKE_<lang>_LIBRARY_ARCHITECTURE from the "
946      "implicit linker search path by matching the <arch> name.",false,
947      "Variables That Describe the System");
948
949   cm->DefineProperty
950     ("CMAKE_HOST_SYSTEM", cmProperty::VARIABLE,
951      "Name of system cmake is being run on.",
952      "The same as CMAKE_SYSTEM but for the host system instead "
953      "of the target system when cross compiling.",false,
954      "Variables That Describe the System");
955   cm->DefineProperty
956     ("CMAKE_HOST_SYSTEM_NAME", cmProperty::VARIABLE,
957      "Name of the OS CMake is running on.",
958      "The same as CMAKE_SYSTEM_NAME but for the host system instead "
959      "of the target system when cross compiling.",false,
960      "Variables That Describe the System");
961   cm->DefineProperty
962     ("CMAKE_HOST_SYSTEM_PROCESSOR", cmProperty::VARIABLE,
963      "The name of the CPU CMake is running on.",
964      "The same as CMAKE_SYSTEM_PROCESSOR but for the host system instead "
965      "of the target system when cross compiling.",false,
966      "Variables That Describe the System");
967   cm->DefineProperty
968     ("CMAKE_HOST_SYSTEM_VERSION", cmProperty::VARIABLE,
969      "OS version CMake is running on.",
970      "The same as CMAKE_SYSTEM_VERSION but for the host system instead "
971      "of the target system when cross compiling.",false,
972      "Variables That Describe the System");
973
974   cm->DefineProperty
975     ("APPLE", cmProperty::VARIABLE,
976      "True if running on Mac OSX.",
977      "Set to true on Mac OSX.",false,
978      "Variables That Describe the System");
979
980   cm->DefineProperty
981     ("BORLAND", cmProperty::VARIABLE,
982      "True if the borland compiler is being used.",
983      "This is set to true if the Borland compiler is being used.",false,
984      "Variables That Describe the System");
985
986   cm->DefineProperty
987     ("CYGWIN", cmProperty::VARIABLE,
988      "True for cygwin.",
989      "Set to true when using CYGWIN.",false,
990      "Variables That Describe the System");
991
992   cm->DefineProperty
993     ("MSVC", cmProperty::VARIABLE,
994      "True when using Microsoft Visual C",
995      "Set to true when the compiler is some version of Microsoft Visual C.",
996      false,
997      "Variables That Describe the System");
998
999   int msvc_versions[] = { 60, 70, 71, 80, 90, 100, 110, 0 };
1000   for (int i = 0; msvc_versions[i] != 0; i ++)
1001     {
1002     const char minor = (char)('0' + (msvc_versions[i] % 10));
1003     cmStdString varName = "MSVC";
1004     cmsys_ios::ostringstream majorStr;
1005
1006     majorStr << (msvc_versions[i] / 10);
1007     varName += majorStr.str();
1008     if (msvc_versions[i] < 100)
1009       {
1010       varName += minor;
1011       }
1012
1013     cmStdString verString = majorStr.str() + "." + minor;
1014
1015     cmStdString shortStr = "True when using Microsoft Visual C " + verString;
1016     cmStdString fullStr = "Set to true when the compiler is version " +
1017                           verString +
1018                           " of Microsoft Visual C.";
1019     cm->DefineProperty
1020       (varName.c_str(), cmProperty::VARIABLE,
1021        shortStr.c_str(),
1022        fullStr.c_str(),
1023        false,
1024        "Variables That Describe the System");
1025     }
1026
1027   cm->DefineProperty
1028     ("MSVC_IDE", cmProperty::VARIABLE,
1029      "True when using the Microsoft Visual C IDE",
1030      "Set to true when the target platform is the Microsoft Visual C IDE, "
1031      "as opposed to the command line compiler.",
1032      false,
1033      "Variables That Describe the System");
1034
1035   cm->DefineProperty
1036     ("MSVC_VERSION", cmProperty::VARIABLE,
1037      "The version of Microsoft Visual C/C++ being used if any.",
1038      "Known version numbers are:\n"
1039      "  1200 = VS  6.0\n"
1040      "  1300 = VS  7.0\n"
1041      "  1310 = VS  7.1\n"
1042      "  1400 = VS  8.0\n"
1043      "  1500 = VS  9.0\n"
1044      "  1600 = VS 10.0\n"
1045      "  1700 = VS 11.0\n"
1046      "",
1047      false,
1048      "Variables That Describe the System");
1049
1050   cm->DefineProperty
1051     ("CMAKE_CL_64", cmProperty::VARIABLE,
1052      "Using the 64 bit compiler from Microsoft",
1053      "Set to true when using the 64 bit cl compiler from Microsoft.",
1054      false,
1055      "Variables That Describe the System");
1056
1057   cm->DefineProperty
1058     ("CMAKE_COMPILER_2005", cmProperty::VARIABLE,
1059      "Using the Visual Studio 2005 compiler from Microsoft",
1060      "Set to true when using the Visual Studio 2005 compiler "
1061      "from Microsoft.",
1062      false,
1063      "Variables That Describe the System");
1064
1065   cm->DefineProperty
1066     ("UNIX", cmProperty::VARIABLE,
1067      "True for UNIX and UNIX like operating systems.",
1068      "Set to true when the target system is UNIX or UNIX like "
1069      "(i.e. APPLE and CYGWIN).",false,
1070      "Variables That Describe the System");
1071
1072   cm->DefineProperty
1073     ("WIN32", cmProperty::VARIABLE,
1074      "True on windows systems, including win64.",
1075      "Set to true when the target system is Windows.",false,
1076      "Variables That Describe the System");
1077
1078   cm->DefineProperty
1079     ("XCODE_VERSION", cmProperty::VARIABLE,
1080      "Version of Xcode (Xcode generator only).",
1081      "Under the Xcode generator, this is the version of Xcode as specified in "
1082      "\"Xcode.app/Contents/version.plist\" (such as \"3.1.2\").",false,
1083      "Variables That Describe the System");
1084
1085   cm->DefineProperty
1086     ("CMAKE_HOST_APPLE", cmProperty::VARIABLE,
1087      "True for Apple OSXoperating systems.",
1088      "Set to true when the host system is Apple OSX.",
1089      false,
1090      "Variables That Describe the System");
1091
1092   cm->DefineProperty
1093     ("CMAKE_HOST_UNIX", cmProperty::VARIABLE,
1094      "True for UNIX and UNIX like operating systems.",
1095      "Set to true when the host system is UNIX or UNIX like "
1096      "(i.e. APPLE and CYGWIN).",false,
1097      "Variables That Describe the System");
1098
1099   cm->DefineProperty
1100     ("CMAKE_HOST_WIN32", cmProperty::VARIABLE,
1101      "True on windows systems, including win64.",
1102      "Set to true when the host system is Windows and on cygwin.",false,
1103      "Variables That Describe the System");
1104
1105   cm->DefineProperty
1106     ("CMAKE_OBJECT_PATH_MAX", cmProperty::VARIABLE,
1107      "Maximum object file full-path length allowed by native build tools.",
1108      "CMake computes for every source file an object file name that is "
1109      "unique to the source file and deterministic with respect to the "
1110      "full path to the source file.  "
1111      "This allows multiple source files in a target to share the same name "
1112      "if they lie in different directories without rebuilding when one is "
1113      "added or removed.  "
1114      "However, it can produce long full paths in a few cases, so CMake "
1115      "shortens the path using a hashing scheme when the full path to an "
1116      "object file exceeds a limit.  "
1117      "CMake has a built-in limit for each platform that is sufficient for "
1118      "common tools, but some native tools may have a lower limit.  "
1119      "This variable may be set to specify the limit explicitly.  "
1120      "The value must be an integer no less than 128.",false,
1121      "Variables That Describe the System");
1122
1123   // Variables that affect the building of object files and
1124   // targets.
1125   //
1126   cm->DefineProperty
1127     ("CMAKE_INCLUDE_CURRENT_DIR", cmProperty::VARIABLE,
1128      "Automatically add the current source- and build directories "
1129      "to the include path.",
1130      "If this variable is enabled, CMake automatically adds in each "
1131      "directory ${CMAKE_CURRENT_SOURCE_DIR} and ${CMAKE_CURRENT_BINARY_DIR} "
1132      "to the include path for this directory. These additional include "
1133      "directories do not propagate down to subdirectories. This is useful "
1134      "mainly for out-of-source builds, where files generated into the "
1135      "build tree are included by files located in the source tree.\n"
1136      "By default CMAKE_INCLUDE_CURRENT_DIR is OFF.",
1137      false,
1138      "Variables that Control the Build");
1139
1140   cm->DefineProperty
1141     ("CMAKE_INSTALL_RPATH", cmProperty::VARIABLE,
1142      "The rpath to use for installed targets.",
1143      "A semicolon-separated list specifying the rpath "
1144      "to use in installed targets (for platforms that support it). "
1145      "This is used to initialize the target property "
1146      "INSTALL_RPATH for all targets.",
1147      false,
1148      "Variables that Control the Build");
1149
1150   cm->DefineProperty
1151     ("CMAKE_INSTALL_RPATH_USE_LINK_PATH", cmProperty::VARIABLE,
1152      "Add paths to linker search and installed rpath.",
1153      "CMAKE_INSTALL_RPATH_USE_LINK_PATH is a boolean that if set to true "
1154      "will append directories in the linker search path and outside the "
1155      "project to the INSTALL_RPATH. "
1156      "This is used to initialize the target property "
1157      "INSTALL_RPATH_USE_LINK_PATH for all targets.",
1158      false,
1159      "Variables that Control the Build");
1160
1161   cm->DefineProperty
1162     ("CMAKE_INSTALL_NAME_DIR", cmProperty::VARIABLE,
1163      "Mac OSX directory name for installed targets.",
1164      "CMAKE_INSTALL_NAME_DIR is used to initialize the "
1165      "INSTALL_NAME_DIR property on all targets. See that target "
1166      "property for more information.",
1167      false,
1168      "Variables that Control the Build");
1169
1170   cm->DefineProperty
1171     ("CMAKE_Fortran_FORMAT", cmProperty::VARIABLE,
1172      "Set to FIXED or FREE to indicate the Fortran source layout.",
1173      "This variable is used to initialize the Fortran_FORMAT "
1174      "property on all the targets. "
1175      "See that target property for additional information.",
1176      false,
1177      "Variables that Control the Build");
1178
1179   cm->DefineProperty
1180     ("CMAKE_Fortran_MODULE_DIRECTORY", cmProperty::VARIABLE,
1181      "Fortran module output directory.",
1182      "This variable is used to initialize the "
1183      "Fortran_MODULE_DIRECTORY property on all the targets. "
1184      "See that target property for additional information.",
1185      false,
1186      "Variables that Control the Build");
1187
1188   cm->DefineProperty
1189     ("CMAKE_LIBRARY_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
1190      "Where to put all the LIBRARY targets when built.",
1191      "This variable is used to initialize the "
1192      "LIBRARY_OUTPUT_DIRECTORY property on all the targets. "
1193      "See that target property for additional information.",
1194      false,
1195      "Variables that Control the Build");
1196
1197   cm->DefineProperty
1198     ("CMAKE_ARCHIVE_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
1199      "Where to put all the ARCHIVE targets when built.",
1200      "This variable is used to initialize the "
1201      "ARCHIVE_OUTPUT_DIRECTORY property on all the targets. "
1202      "See that target property for additional information.",
1203      false,
1204      "Variables that Control the Build");
1205
1206   cm->DefineProperty
1207     ("CMAKE_RUNTIME_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
1208      "Where to put all the RUNTIME targets when built.",
1209      "This variable is used to initialize the "
1210      "RUNTIME_OUTPUT_DIRECTORY property on all the targets. "
1211      "See that target property for additional information.",
1212      false,
1213      "Variables that Control the Build");
1214
1215   cm->DefineProperty
1216     ("CMAKE_PDB_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
1217      "Where to put all the MS debug symbol files.",
1218      "This variable is used to initialize the "
1219      "PDB_OUTPUT_DIRECTORY property on all the targets. "
1220      "See that target property for additional information.",
1221      false,
1222      "Variables that Control the Build");
1223
1224   cm->DefineProperty
1225     ("CMAKE_AUTOMOC", cmProperty::VARIABLE,
1226      "Whether to handle moc automatically for Qt targets.",
1227      "This variable is used to initialize the "
1228      "AUTOMOC property on all the targets. "
1229      "See that target property for additional information.",
1230      false,
1231      "Variables that Control the Build");
1232
1233   cm->DefineProperty
1234     ("CMAKE_AUTOMOC_MOC_OPTIONS", cmProperty::VARIABLE,
1235      "Additional options for moc when using automoc (see CMAKE_AUTOMOC).",
1236      "This variable is used to initialize the "
1237      "AUTOMOC_MOC_OPTIONS property on all the targets. "
1238      "See that target property for additional information.",
1239      false,
1240      "Variables that Control the Build");
1241
1242   cm->DefineProperty
1243     ("CMAKE_GNUtoMS", cmProperty::VARIABLE,
1244      "Convert GNU import libraries (.dll.a) to MS format (.lib).",
1245      "This variable is used to initialize the GNUtoMS property on targets "
1246      "when they are created.  "
1247      "See that target property for additional information.",
1248      false,
1249      "Variables that Control the Build");
1250
1251   cm->DefineProperty
1252     ("CMAKE_DEBUG_POSTFIX", cmProperty::VARIABLE,
1253      "See variable CMAKE_<CONFIG>_POSTFIX.",
1254      "This variable is a special case of the more-general "
1255      "CMAKE_<CONFIG>_POSTFIX variable for the DEBUG configuration.",
1256      false,
1257      "Variables that Control the Build");
1258   cm->DefineProperty
1259     ("CMAKE_<CONFIG>_POSTFIX", cmProperty::VARIABLE,
1260      "Default filename postfix for libraries under configuration <CONFIG>.",
1261      "When a non-executable target is created its <CONFIG>_POSTFIX "
1262      "target property is initialized with the value of this variable "
1263      "if it is set.",
1264      false,
1265      "Variables that Control the Build");
1266
1267   cm->DefineProperty
1268     ("CMAKE_BUILD_WITH_INSTALL_RPATH", cmProperty::VARIABLE,
1269      "Use the install path for the RPATH",
1270      "Normally CMake uses the build tree for the RPATH when building "
1271      "executables etc on systems that use RPATH. When the software "
1272      "is installed the executables etc are relinked by CMake to have "
1273      "the install RPATH. If this variable is set to true then the software "
1274      "is always built with the install path for the RPATH and does not "
1275      "need to be relinked when installed.",false,
1276      "Variables that Control the Build");
1277
1278   cm->DefineProperty
1279     ("CMAKE_NO_BUILTIN_CHRPATH", cmProperty::VARIABLE,
1280      "Do not use the builtin ELF editor to fix RPATHs on installation.",
1281      "When an ELF binary needs to have a different RPATH after installation "
1282      "than it does in the build tree, CMake uses a builtin editor to change "
1283      "the RPATH in the installed copy.  "
1284      "If this variable is set to true then CMake will relink the binary "
1285      "before installation instead of using its builtin editor.",false,
1286      "Variables that Control the Build");
1287
1288   cm->DefineProperty
1289     ("CMAKE_SKIP_BUILD_RPATH", cmProperty::VARIABLE,
1290      "Do not include RPATHs in the build tree.",
1291      "Normally CMake uses the build tree for the RPATH when building "
1292      "executables etc on systems that use RPATH. When the software "
1293      "is installed the executables etc are relinked by CMake to have "
1294      "the install RPATH. If this variable is set to true then the software "
1295      "is always built with no RPATH.",false,
1296      "Variables that Control the Build");
1297
1298   cm->DefineProperty
1299     ("CMAKE_SKIP_INSTALL_RPATH", cmProperty::VARIABLE,
1300      "Do not include RPATHs in the install tree.",
1301      "Normally CMake uses the build tree for the RPATH when building "
1302      "executables etc on systems that use RPATH. When the software "
1303      "is installed the executables etc are relinked by CMake to have "
1304      "the install RPATH. If this variable is set to true then the software "
1305      "is always installed without RPATH, even if RPATH is enabled when "
1306      "building.  This can be useful for example to allow running tests from "
1307      "the build directory with RPATH enabled before the installation step.  "
1308      "To omit RPATH in both the build and install steps, use "
1309      "CMAKE_SKIP_RPATH instead.",false,
1310      "Variables that Control the Build");
1311
1312   cm->DefineProperty
1313     ("CMAKE_EXE_LINKER_FLAGS", cmProperty::VARIABLE,
1314      "Linker flags used to create executables.",
1315      "Flags used by the linker when creating an executable.",false,
1316      "Variables that Control the Build");
1317
1318   cm->DefineProperty
1319     ("CMAKE_EXE_LINKER_FLAGS_[CMAKE_BUILD_TYPE]", cmProperty::VARIABLE,
1320      "Flag used when linking an executable.",
1321      "Same as CMAKE_C_FLAGS_* but used by the linker "
1322      "when creating executables.",false,
1323      "Variables that Control the Build");
1324   cm->DefineProperty
1325     ("CMAKE_LIBRARY_PATH_FLAG", cmProperty::VARIABLE,
1326      "The flag used to add a library search path to a compiler.",
1327      "The flag used to specify a library directory to the compiler. "
1328      "On most compilers this is \"-L\".",false,
1329      "Variables that Control the Build");
1330   cm->DefineProperty
1331     ("CMAKE_LINK_DEF_FILE_FLAG  ", cmProperty::VARIABLE,
1332      "Linker flag used to specify a .def file for dll creation.",
1333      "The flag used to add a .def file when creating "
1334      "a dll on Windows, this is only defined on Windows.",false,
1335      "Variables that Control the Build");
1336   cm->DefineProperty
1337     ("CMAKE_LINK_LIBRARY_FLAG", cmProperty::VARIABLE,
1338      "Flag used to link a library into an executable.",
1339      "The flag used to specify a library to link to an executable.  "
1340      "On most compilers this is \"-l\".",false,
1341      "Variables that Control the Build");
1342   cm->DefineProperty
1343     ("CMAKE_LINK_LIBRARY_FILE_FLAG", cmProperty::VARIABLE,
1344      "Flag used to link a library specified by a path to its file.",
1345      "The flag used before a library file path is given to the linker.  "
1346      "This is needed only on very few platforms.", false,
1347      "Variables that Control the Build");
1348   cm->DefineProperty
1349     ("CMAKE_USE_RELATIVE_PATHS", cmProperty::VARIABLE,
1350      "Use relative paths (May not work!).",
1351      "If this is set to TRUE, then the CMake will use "
1352      "relative paths between the source and binary tree. "
1353      "This option does not work for more complicated "
1354      "projects, and relative paths are used when possible.  "
1355      "In general, it is not possible to move CMake generated"
1356      " makefiles to a different location regardless "
1357      "of the value of this variable.",false,
1358      "Variables that Control the Build");
1359   cm->DefineProperty
1360     ("EXECUTABLE_OUTPUT_PATH", cmProperty::VARIABLE,
1361      "Old executable location variable.",
1362      "The target property RUNTIME_OUTPUT_DIRECTORY supercedes "
1363      "this variable for a target if it is set.  "
1364      "Executable targets are otherwise placed in this directory.",false,
1365      "Variables that Control the Build");
1366   cm->DefineProperty
1367     ("LIBRARY_OUTPUT_PATH", cmProperty::VARIABLE,
1368      "Old library location variable.",
1369      "The target properties ARCHIVE_OUTPUT_DIRECTORY, "
1370      "LIBRARY_OUTPUT_DIRECTORY, and RUNTIME_OUTPUT_DIRECTORY supercede "
1371      "this variable for a target if they are set.  "
1372      "Library targets are otherwise placed in this directory.",false,
1373      "Variables that Control the Build");
1374   cm->DefineProperty
1375     ("CMAKE_TRY_COMPILE_CONFIGURATION", cmProperty::VARIABLE,
1376      "Build configuration used for try_compile and try_run projects.",
1377      "Projects built by try_compile and try_run are built "
1378      "synchronously during the CMake configuration step.  "
1379      "Therefore a specific build configuration must be chosen even "
1380      "if the generated build system supports multiple configurations.",false,
1381      "Variables that Control the Build");
1382   cm->DefineProperty
1383     ("CMAKE_LINK_INTERFACE_LIBRARIES", cmProperty::VARIABLE,
1384      "Default value for LINK_INTERFACE_LIBRARIES of targets.",
1385      "This variable is used to initialize the "
1386      "LINK_INTERFACE_LIBRARIES property on all the targets. "
1387      "See that target property for additional information.",
1388      false,
1389      "Variables that Control the Build");
1390   cm->DefineProperty
1391     ("CMAKE_WIN32_EXECUTABLE", cmProperty::VARIABLE,
1392      "Default value for WIN32_EXECUTABLE of targets.",
1393      "This variable is used to initialize the "
1394      "WIN32_EXECUTABLE property on all the targets. "
1395      "See that target property for additional information.",
1396      false,
1397      "Variables that Control the Build");
1398   cm->DefineProperty
1399     ("CMAKE_MACOSX_BUNDLE", cmProperty::VARIABLE,
1400      "Default value for MACOSX_BUNDLE of targets.",
1401      "This variable is used to initialize the "
1402      "MACOSX_BUNDLE property on all the targets. "
1403      "See that target property for additional information.",
1404      false,
1405      "Variables that Control the Build");
1406   cm->DefineProperty
1407     ("CMAKE_POSITION_INDEPENDENT_CODE", cmProperty::VARIABLE,
1408      "Default value for POSITION_INDEPENDENT_CODE of targets.",
1409      "This variable is used to initialize the "
1410      "POSITION_INDEPENDENT_CODE property on all the targets. "
1411      "See that target property for additional information.",
1412      false,
1413      "Variables that Control the Build");
1414
1415 //   Variables defined when the a language is enabled These variables will
1416 // also be defined whenever CMake has loaded its support for compiling (LANG)
1417 // programs. This support will be loaded whenever CMake is used to compile
1418 // (LANG) files. C and CXX are examples of the most common values for (LANG).
1419
1420   cm->DefineProperty
1421     ("CMAKE_USER_MAKE_RULES_OVERRIDE_<LANG>", cmProperty::VARIABLE,
1422      "Specify a CMake file that overrides platform information for <LANG>.",
1423      "This is a language-specific version of "
1424      "CMAKE_USER_MAKE_RULES_OVERRIDE loaded only when enabling "
1425      "language <LANG>.",false,
1426      "Variables for Languages");
1427
1428   cm->DefineProperty
1429     ("CMAKE_<LANG>_COMPILER", cmProperty::VARIABLE,
1430      "The full path to the compiler for LANG.",
1431      "This is the command that will be used as the <LANG> compiler. "
1432      "Once set, you can not change this variable.",false,
1433      "Variables for Languages");
1434
1435   cm->DefineProperty
1436     ("CMAKE_<LANG>_COMPILER_ID", cmProperty::VARIABLE,
1437      "Compiler identification string.",
1438      "A short string unique to the compiler vendor.  "
1439      "Possible values include:\n"
1440      "  Absoft = Absoft Fortran (absoft.com)\n"
1441      "  ADSP = Analog VisualDSP++ (analog.com)\n"
1442      "  Clang = LLVM Clang (clang.llvm.org)\n"
1443      "  Cray = Cray Compiler (cray.com)\n"
1444      "  Embarcadero, Borland = Embarcadero (embarcadero.com)\n"
1445      "  G95 = G95 Fortran (g95.org)\n"
1446      "  GNU = GNU Compiler Collection (gcc.gnu.org)\n"
1447      "  HP = Hewlett-Packard Compiler (hp.com)\n"
1448      "  Intel = Intel Compiler (intel.com)\n"
1449      "  MIPSpro = SGI MIPSpro (sgi.com)\n"
1450      "  MSVC = Microsoft Visual Studio (microsoft.com)\n"
1451      "  PGI = The Portland Group (pgroup.com)\n"
1452      "  PathScale = PathScale (pathscale.com)\n"
1453      "  SDCC = Small Device C Compiler (sdcc.sourceforge.net)\n"
1454      "  SunPro = Oracle Solaris Studio (oracle.com)\n"
1455      "  TI_DSP = Texas Instruments (ti.com)\n"
1456      "  TinyCC = Tiny C Compiler (tinycc.org)\n"
1457      "  Watcom = Open Watcom (openwatcom.org)\n"
1458      "  XL, VisualAge, zOS = IBM XL (ibm.com)\n"
1459      "This variable is not guaranteed to be defined for all "
1460      "compilers or languages.",
1461      false,
1462      "Variables for Languages");
1463
1464   cm->DefineProperty
1465     ("CMAKE_<LANG>_PLATFORM_ID", cmProperty::VARIABLE,
1466      "An internal variable subject to change.",
1467      "This is used in determining the platform and is subject to change.",
1468      false,
1469      "Variables for Languages");
1470
1471   cm->DefineProperty
1472     ("CMAKE_<LANG>_COMPILER_ABI", cmProperty::VARIABLE,
1473      "An internal variable subject to change.",
1474      "This is used in determining the compiler ABI and is subject to change.",
1475      false,
1476      "Variables for Languages");
1477
1478   cm->DefineProperty
1479     ("CMAKE_<LANG>_COMPILER_VERSION", cmProperty::VARIABLE,
1480      "Compiler version string.",
1481      "Compiler version in major[.minor[.patch[.tweak]]] format.  "
1482      "This variable is not guaranteed to be defined for all "
1483      "compilers or languages.",
1484      false,
1485      "Variables for Languages");
1486
1487   cm->DefineProperty
1488     ("CMAKE_INTERNAL_PLATFORM_ABI", cmProperty::VARIABLE,
1489      "An internal variable subject to change.",
1490      "This is used in determining the compiler ABI and is subject to change.",
1491      false,
1492      "Variables for Languages");
1493
1494   cm->DefineProperty
1495     ("CMAKE_<LANG>_SIZEOF_DATA_PTR", cmProperty::VARIABLE,
1496      "Size of pointer-to-data types for language <LANG>.",
1497      "This holds the size (in bytes) of pointer-to-data types in the target "
1498      "platform ABI.  "
1499      "It is defined for languages C and CXX (C++).",
1500      false,
1501      "Variables for Languages");
1502
1503   cm->DefineProperty
1504     ("CMAKE_COMPILER_IS_GNU<LANG>", cmProperty::VARIABLE,
1505      "True if the compiler is GNU.",
1506      "If the selected <LANG> compiler is the GNU "
1507      "compiler then this is TRUE, if not it is FALSE.",false,
1508      "Variables for Languages");
1509
1510   cm->DefineProperty
1511     ("CMAKE_<LANG>_FLAGS_DEBUG", cmProperty::VARIABLE,
1512      "Flags for Debug build type or configuration.",
1513      "<LANG> flags used when CMAKE_BUILD_TYPE is Debug.",false,
1514      "Variables for Languages");
1515
1516   cm->DefineProperty
1517     ("CMAKE_<LANG>_FLAGS_MINSIZEREL", cmProperty::VARIABLE,
1518      "Flags for MinSizeRel build type or configuration.",
1519      "<LANG> flags used when CMAKE_BUILD_TYPE is MinSizeRel."
1520      "Short for minimum size release.",false,
1521      "Variables for Languages");
1522
1523   cm->DefineProperty
1524     ("CMAKE_<LANG>_FLAGS_RELEASE", cmProperty::VARIABLE,
1525      "Flags for Release build type or configuration.",
1526      "<LANG> flags used when CMAKE_BUILD_TYPE is Release",false,
1527      "Variables for Languages");
1528
1529   cm->DefineProperty
1530     ("CMAKE_<LANG>_FLAGS_RELWITHDEBINFO", cmProperty::VARIABLE,
1531      "Flags for RelWithDebInfo type or configuration.",
1532      "<LANG> flags used when CMAKE_BUILD_TYPE is RelWithDebInfo. "
1533      "Short for Release With Debug Information.",false,
1534      "Variables for Languages");
1535
1536   cm->DefineProperty
1537     ("CMAKE_<LANG>_COMPILE_OBJECT", cmProperty::VARIABLE,
1538      "Rule variable to compile a single object file.",
1539      "This is a rule variable that tells CMake how to "
1540      "compile a single object file for for the language <LANG>.",false,
1541      "Variables for Languages");
1542
1543   cm->DefineProperty
1544     ("CMAKE_<LANG>_CREATE_SHARED_LIBRARY", cmProperty::VARIABLE,
1545      "Rule variable to create a shared library.",
1546      "This is a rule variable that tells CMake how to "
1547      "create a shared library for the language <LANG>.",false,
1548      "Variables for Languages");
1549
1550   cm->DefineProperty
1551     ("CMAKE_<LANG>_CREATE_SHARED_MODULE", cmProperty::VARIABLE,
1552      "Rule variable to create a shared module.",
1553      "This is a rule variable that tells CMake how to "
1554      "create a shared library for the language <LANG>.",false,
1555      "Variables for Languages");
1556
1557   cm->DefineProperty
1558     ("CMAKE_<LANG>_CREATE_STATIC_LIBRARY", cmProperty::VARIABLE,
1559      "Rule variable to create a static library.",
1560      "This is a rule variable that tells CMake how "
1561      "to create a static library for the language <LANG>.",false,
1562      "Variables for Languages");
1563
1564   cm->DefineProperty
1565     ("CMAKE_<LANG>_ARCHIVE_CREATE", cmProperty::VARIABLE,
1566      "Rule variable to create a new static archive.",
1567      "This is a rule variable that tells CMake how to create a static "
1568      "archive.  It is used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY "
1569      "on some platforms in order to support large object counts.  "
1570      "See also CMAKE_<LANG>_ARCHIVE_APPEND and CMAKE_<LANG>_ARCHIVE_FINISH.",
1571      false, "Variables for Languages");
1572
1573   cm->DefineProperty
1574     ("CMAKE_<LANG>_ARCHIVE_APPEND", cmProperty::VARIABLE,
1575      "Rule variable to append to a static archive.",
1576      "This is a rule variable that tells CMake how to append to a static "
1577      "archive.  It is used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY "
1578      "on some platforms in order to support large object counts.  "
1579      "See also CMAKE_<LANG>_ARCHIVE_CREATE and CMAKE_<LANG>_ARCHIVE_FINISH.",
1580      false, "Variables for Languages");
1581
1582   cm->DefineProperty
1583     ("CMAKE_<LANG>_ARCHIVE_FINISH", cmProperty::VARIABLE,
1584      "Rule variable to finish an existing static archive.",
1585      "This is a rule variable that tells CMake how to finish a static "
1586      "archive.  It is used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY "
1587      "on some platforms in order to support large object counts.  "
1588      "See also CMAKE_<LANG>_ARCHIVE_CREATE and CMAKE_<LANG>_ARCHIVE_APPEND.",
1589      false, "Variables for Languages");
1590
1591   cm->DefineProperty
1592     ("CMAKE_<LANG>_IGNORE_EXTENSIONS", cmProperty::VARIABLE,
1593      "File extensions that should be ignored by the build.",
1594      "This is a list of file extensions that may be "
1595      "part of a project for a given language but are not compiled. ",false,
1596      "Variables for Languages");
1597
1598   cm->DefineProperty
1599     ("CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES", cmProperty::VARIABLE,
1600      "Directories implicitly searched by the compiler for header files.",
1601      "CMake does not explicitly specify these directories on compiler "
1602      "command lines for language <LANG>.  "
1603      "This prevents system include directories from being treated as user "
1604      "include directories on some compilers.", false,
1605      "Variables for Languages");
1606
1607   cm->DefineProperty
1608     ("CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES", cmProperty::VARIABLE,
1609      "Implicit linker search path detected for language <LANG>.",
1610      "Compilers typically pass directories containing language runtime "
1611      "libraries and default library search paths when they invoke a linker.  "
1612      "These paths are implicit linker search directories for the compiler's "
1613      "language.  "
1614      "CMake automatically detects these directories for each language and "
1615      "reports the results in this variable.", false,
1616      "Variables for Languages");
1617
1618   cm->DefineProperty
1619     ("CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES", cmProperty::VARIABLE,
1620      "Implicit link libraries and flags detected for language <LANG>.",
1621      "Compilers typically pass language runtime library names and "
1622      "other flags when they invoke a linker.  "
1623      "These flags are implicit link options for the compiler's language.  "
1624      "CMake automatically detects these libraries and flags for each "
1625      "language and reports the results in this variable.", false,
1626      "Variables for Languages");
1627
1628   cm->DefineProperty
1629     ("CMAKE_<LANG>_LIBRARY_ARCHITECTURE", cmProperty::VARIABLE,
1630      "Target architecture library directory name detected for <lang>.",
1631      "If the <lang> compiler passes to the linker an architecture-specific "
1632      "system library search directory such as <prefix>/lib/<arch> this "
1633      "variable contains the <arch> name if/as detected by CMake.",false,
1634      "Variables for Languages");
1635
1636   cm->DefineProperty
1637     ("CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES", cmProperty::VARIABLE,
1638      "True if CMAKE_<LANG>_LINKER_PREFERENCE propagates across targets.",
1639      "This is used when CMake selects a linker language for a target.  "
1640      "Languages compiled directly into the target are always considered.  "
1641      "A language compiled into static libraries linked by the target is "
1642      "considered if this variable is true.", false,
1643      "Variables for Languages");
1644
1645   cm->DefineProperty
1646     ("CMAKE_<LANG>_LINKER_PREFERENCE", cmProperty::VARIABLE,
1647      "Preference value for linker language selection.",
1648      "The \"linker language\" for executable, shared library, and module "
1649      "targets is the language whose compiler will invoke the linker.  "
1650      "The LINKER_LANGUAGE target property sets the language explicitly.  "
1651      "Otherwise, the linker language is that whose linker preference value "
1652      "is highest among languages compiled and linked into the target.  "
1653      "See also the CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES variable.",
1654      false,
1655      "Variables for Languages");
1656
1657   cm->DefineProperty
1658     ("CMAKE_<LANG>_LINK_EXECUTABLE ", cmProperty::VARIABLE,
1659      "Rule variable to link and executable.",
1660      "Rule variable to link and executable for the given language.",false,
1661      "Variables for Languages");
1662
1663   cm->DefineProperty
1664     ("CMAKE_<LANG>_OUTPUT_EXTENSION", cmProperty::VARIABLE,
1665      "Extension for the output of a compile for a single file.",
1666      "This is the extension for an object file for "
1667      "the given <LANG>. For example .obj for C on Windows.",false,
1668      "Variables for Languages");
1669
1670   cm->DefineProperty
1671     ("CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS", cmProperty::VARIABLE,
1672      "Extensions of source files for the given language.",
1673      "This is the list of extensions for a "
1674      "given languages source files.",false,"Variables for Languages");
1675
1676   cm->DefineProperty(
1677     "CMAKE_<LANG>_COMPILER_LOADED", cmProperty::VARIABLE,
1678     "Defined to true if the language is enabled.",
1679     "When language <LANG> is enabled by project() or enable_language() "
1680     "this variable is defined to 1.",
1681     false,"Variables for Languages");
1682
1683   cm->DefineProperty(
1684     "CMAKE_Fortran_MODDIR_FLAG", cmProperty::VARIABLE,
1685     "Fortran flag for module output directory.",
1686     "This stores the flag needed to pass the value of the "
1687     "Fortran_MODULE_DIRECTORY target property to the compiler.",
1688     false,"Variables for Languages");
1689
1690   cm->DefineProperty(
1691     "CMAKE_Fortran_MODDIR_DEFAULT", cmProperty::VARIABLE,
1692     "Fortran default module output directory.",
1693     "Most Fortran compilers write .mod files to the current working "
1694     "directory.  "
1695     "For those that do not, this is set to \".\" and used when the "
1696     "Fortran_MODULE_DIRECTORY target property is not set.",
1697     false,"Variables for Languages");
1698
1699   cm->DefineProperty(
1700     "CMAKE_Fortran_MODOUT_FLAG", cmProperty::VARIABLE,
1701     "Fortran flag to enable module output.",
1702     "Most Fortran compilers write .mod files out by default.  "
1703     "For others, this stores the flag needed to enable module output.",
1704     false,"Variables for Languages");
1705
1706   // variables that are used by cmake but not to be documented
1707   cm->DefineProperty("CMAKE_MATCH_0", cmProperty::VARIABLE,0,0);
1708   cm->DefineProperty("CMAKE_MATCH_1", cmProperty::VARIABLE,0,0);
1709   cm->DefineProperty("CMAKE_MATCH_2", cmProperty::VARIABLE,0,0);
1710   cm->DefineProperty("CMAKE_MATCH_3", cmProperty::VARIABLE,0,0);
1711   cm->DefineProperty("CMAKE_MATCH_4", cmProperty::VARIABLE,0,0);
1712   cm->DefineProperty("CMAKE_MATCH_5", cmProperty::VARIABLE,0,0);
1713   cm->DefineProperty("CMAKE_MATCH_6", cmProperty::VARIABLE,0,0);
1714   cm->DefineProperty("CMAKE_MATCH_7", cmProperty::VARIABLE,0,0);
1715   cm->DefineProperty("CMAKE_MATCH_8", cmProperty::VARIABLE,0,0);
1716   cm->DefineProperty("CMAKE_MATCH_9", cmProperty::VARIABLE,0,0);
1717
1718   cm->DefineProperty("CMAKE_<LANG>_COMPILER_ARG1",
1719                      cmProperty::VARIABLE,0,0);
1720   cm->DefineProperty("CMAKE_<LANG>_COMPILER_ENV_VAR",
1721                      cmProperty::VARIABLE,0,0);
1722   cm->DefineProperty("CMAKE_<LANG>_COMPILER_ID_RUN",
1723                      cmProperty::VARIABLE,0,0);
1724   cm->DefineProperty("CMAKE_<LANG>_ABI_FILES",
1725                      cmProperty::VARIABLE,0,0);
1726   cm->DefineProperty("CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE",
1727                      cmProperty::VARIABLE,0,0);
1728   cm->DefineProperty("CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE",
1729                      cmProperty::VARIABLE,0,0);
1730   cm->DefineProperty("CMAKE_<LANG>_FLAGS",
1731                      cmProperty::VARIABLE,0,0);
1732   cm->DefineProperty("CMAKE_<LANG>_FLAGS_DEBUG_INIT",
1733                      cmProperty::VARIABLE,0,0);
1734   cm->DefineProperty("CMAKE_<LANG>_FLAGS_INIT",
1735                      cmProperty::VARIABLE,0,0);
1736   cm->DefineProperty("CMAKE_<LANG>_FLAGS_MINSIZEREL_INIT",
1737                      cmProperty::VARIABLE,0,0);
1738   cm->DefineProperty("CMAKE_<LANG>_FLAGS_RELEASE_INIT",
1739                      cmProperty::VARIABLE,0,0);
1740   cm->DefineProperty("CMAKE_<LANG>_FLAGS_RELWITHDEBINFO_INIT",
1741                      cmProperty::VARIABLE,0,0);
1742   cm->DefineProperty("CMAKE_<LANG>_INFORMATION_LOADED",
1743                      cmProperty::VARIABLE,0,0);
1744   cm->DefineProperty("CMAKE_<LANG>_LINK_EXECUTABLE",
1745                      cmProperty::VARIABLE,0,0);
1746   cm->DefineProperty("CMAKE_<LANG>_LINK_FLAGS",
1747                      cmProperty::VARIABLE,0,0);
1748   cm->DefineProperty("CMAKE_<LANG>_RESPONSE_FILE_LINK_FLAG",
1749                      cmProperty::VARIABLE,0,0);
1750   cm->DefineProperty("CMAKE_<LANG>_STANDARD_LIBRARIES",
1751                      cmProperty::VARIABLE,0,0);
1752   cm->DefineProperty("CMAKE_<LANG>_STANDARD_LIBRARIES_INIT",
1753                      cmProperty::VARIABLE,0,0);
1754   cm->DefineProperty("CMAKE_<LANG>_USE_RESPONSE_FILE_FOR_INCLUDES",
1755                      cmProperty::VARIABLE,0,0);
1756   cm->DefineProperty("CMAKE_<LANG>_USE_RESPONSE_FILE_FOR_OBJECTS",
1757                      cmProperty::VARIABLE,0,0);
1758   cm->DefineProperty("CMAKE_EXECUTABLE_SUFFIX_<LANG>",
1759                      cmProperty::VARIABLE,0,0);
1760   cm->DefineProperty("CMAKE_EXE_LINK_DYNAMIC_<LANG>_FLAGS",
1761                      cmProperty::VARIABLE,0,0);
1762   cm->DefineProperty("CMAKE_EXE_LINK_STATIC_<LANG>_FLAGS",
1763                      cmProperty::VARIABLE,0,0);
1764   cm->DefineProperty("CMAKE_GENERATOR_<LANG>",
1765                      cmProperty::VARIABLE,0,0);
1766   cm->DefineProperty("CMAKE_IMPORT_LIBRARY_PREFIX_<LANG>",
1767                      cmProperty::VARIABLE,0,0);
1768   cm->DefineProperty("CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG>",
1769                      cmProperty::VARIABLE,0,0);
1770   cm->DefineProperty("CMAKE_INCLUDE_FLAG_<LANG>",
1771                      cmProperty::VARIABLE,0,0);
1772   cm->DefineProperty("CMAKE_INCLUDE_FLAG_SEP_<LANG>",
1773                      cmProperty::VARIABLE,0,0);
1774   cm->DefineProperty("CMAKE_INCLUDE_SYSTEM_FLAG_<LANG>",
1775                      cmProperty::VARIABLE,0,0);
1776   cm->DefineProperty("CMAKE_NEEDS_REQUIRES_STEP_<LANG>_FLAG",
1777                      cmProperty::VARIABLE,0,0);
1778   cm->DefineProperty("CMAKE_SHARED_LIBRARY_CREATE_<LANG>_FLAGS",
1779                      cmProperty::VARIABLE,0,0);
1780   cm->DefineProperty("CMAKE_SHARED_LIBRARY_<LANG>_FLAGS",
1781                      cmProperty::VARIABLE,0,0);
1782   cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS",
1783                      cmProperty::VARIABLE,0,0);
1784   cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_<LANG>_FLAGS",
1785                      cmProperty::VARIABLE,0,0);
1786   cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_STATIC_<LANG>_FLAGS",
1787                      cmProperty::VARIABLE,0,0);
1788   cm->DefineProperty("CMAKE_SHARED_LIBRARY_PREFIX_<LANG>",
1789                      cmProperty::VARIABLE,0,0);
1790   cm->DefineProperty("CMAKE_SHARED_LIBRARY_SUFFIX_<LANG>",
1791                      cmProperty::VARIABLE,0,0);
1792   cm->DefineProperty("CMAKE_SHARED_LIBRARY_RUNTIME_<LANG>_FLAG",
1793                      cmProperty::VARIABLE,0,0);
1794   cm->DefineProperty("CMAKE_SHARED_LIBRARY_RUNTIME_<LANG>_FLAG_SEP",
1795                      cmProperty::VARIABLE,0,0);
1796   cm->DefineProperty("CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG",
1797                      cmProperty::VARIABLE,0,0);
1798   cm->DefineProperty("CMAKE_EXECUTABLE_RUNTIME_<LANG>_FLAG",
1799                      cmProperty::VARIABLE,0,0);
1800   cm->DefineProperty("CMAKE_EXECUTABLE_RUNTIME_<LANG>_FLAG_SEP",
1801                      cmProperty::VARIABLE,0,0);
1802   cm->DefineProperty("CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG",
1803                      cmProperty::VARIABLE,0,0);
1804   cm->DefineProperty("CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH",
1805                      cmProperty::VARIABLE,0,0);
1806   cm->DefineProperty("CMAKE_SHARED_MODULE_CREATE_<LANG>_FLAGS",
1807                      cmProperty::VARIABLE,0,0);
1808   cm->DefineProperty("CMAKE_SHARED_MODULE_<LANG>_FLAGS",
1809                      cmProperty::VARIABLE,0,0);
1810   cm->DefineProperty("CMAKE_SHARED_MODULE_LINK_DYNAMIC_<LANG>_FLAGS",
1811                      cmProperty::VARIABLE,0,0);
1812   cm->DefineProperty("CMAKE_SHARED_MODULE_LINK_STATIC_<LANG>_FLAGS",
1813                      cmProperty::VARIABLE,0,0);
1814   cm->DefineProperty("CMAKE_SHARED_MODULE_PREFIX_<LANG>",
1815                      cmProperty::VARIABLE,0,0);
1816   cm->DefineProperty("CMAKE_SHARED_MODULE_SUFFIX_<LANG>",
1817                      cmProperty::VARIABLE,0,0);
1818   cm->DefineProperty("CMAKE_STATIC_LIBRARY_PREFIX_<LANG>",
1819                      cmProperty::VARIABLE,0,0);
1820   cm->DefineProperty("CMAKE_STATIC_LIBRARY_SUFFIX_<LANG>",
1821                      cmProperty::VARIABLE,0,0);
1822   cm->DefineProperty("CMAKE_LINK_DEPENDENT_LIBRARY_FILES",
1823                      cmProperty::VARIABLE,0,0);
1824   cm->DefineProperty("CMAKE_LINK_DEPENDENT_LIBRARY_DIRS",
1825                      cmProperty::VARIABLE,0,0);
1826   cm->DefineProperty("CMAKE_MAKE_INCLUDE_FROM_ROOT",
1827                      cmProperty::VARIABLE,0,0);
1828 }