fix issue 9346. add binary directory to window title to make it easier to deal with...
[cmake.git] / Source / cmDocumentVariables.cxx
blobd6d62676baa26abeb5cda7ac367d057b49ddfcb7
1 #include "cmDocumentVariables.h"
2 #include "cmake.h"
4 void cmDocumentVariables::DefineVariables(cmake* cm)
5 {
6 // Subsection: variables defined by cmake, that give
7 // information about the project, and cmake
8 cm->DefineProperty
9 ("CMAKE_AR", cmProperty::VARIABLE,
10 "Name of archiving tool for static libraries.",
11 "This specifies name of the program that creates archive "
12 "or static libraries.",false,
13 "Variables that Provide Information");
15 cm->DefineProperty
16 ("CMAKE_COMMAND", cmProperty::VARIABLE,
17 "The full path to the cmake executable.",
18 "This is the full path to the CMake executable cmake which is "
19 "useful from custom commands that want to use the cmake -E "
20 "option for portable system commands. "
21 "(e.g. /usr/local/bin/cmake", false,
22 "Variables that Provide Information");
23 cm->DefineProperty
24 ("CMAKE_BINARY_DIR", cmProperty::VARIABLE,
25 "The path to the top level of the build tree.",
26 "This is the full path to the top level of the current CMake "
27 "build tree. For an in-source build, this would be the same "
28 "as CMAKE_SOURCE_DIR. ", false,
29 "Variables that Provide Information");
30 cm->DefineProperty
31 ("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
32 "The path to the top level of the source tree.",
33 "This is the full path to the top level of the current CMake "
34 "source tree. For an in-source build, this would be the same "
35 "as CMAKE_BINARY_DIR. ", false,
36 "Variables that Provide Information");
37 cm->DefineProperty
38 ("CMAKE_CURRENT_BINARY_DIR", cmProperty::VARIABLE,
39 "The path to the binary directory currently being processed.",
40 "This the full path to the build directory that is currently "
41 "being processed by cmake. Each directory added by "
42 "add_subdirectory will create a binary directory in the build "
43 "tree, and as it is being processed this variable will be set. "
44 "For in-source builds this is the current source directory "
45 "being processed.", false,
46 "Variables that Provide Information");
47 cm->DefineProperty
48 ("CMAKE_CURRENT_SOURCE_DIR", cmProperty::VARIABLE,
49 "The path to the source directory currently being processed.",
50 "This the full path to the source directory that is currently "
51 "being processed by cmake. ", false,
52 "Variables that Provide Information");
54 cm->DefineProperty
55 ("CMAKE_CURRENT_LIST_FILE", cmProperty::VARIABLE,
56 "Full path to the listfile currently being processed.",
57 "As CMake processes the listfiles in your project this "
58 "variable will always be set to the one currently being "
59 "processed. See also CMAKE_PARENT_LIST_FILE.",false,
60 "Variables that Provide Information");
62 cm->DefineProperty
63 ("CMAKE_CURRENT_LIST_LINE", cmProperty::VARIABLE,
64 "The line number of the current file being processed.",
65 "This is the line number of the file currently being"
66 " processed by cmake.", false,
67 "Variables that Provide Information");
68 cm->DefineProperty
69 ("CMAKE_BUILD_TOOL", cmProperty::VARIABLE,
70 "Tool used for the actual build process.",
71 "This variable is set to the program that will be"
72 " needed to build the output of CMake. If the "
73 "generator selected was Visual Studio 6, the "
74 "CMAKE_MAKE_PROGRAM will be set to msdev, for "
75 "Unix makefiles it will be set to make or gmake, "
76 "and for Visual Studio 7 it set to devenv. For "
77 "Nmake Makefiles the value is nmake. This can be "
78 "useful for adding special flags and commands based"
79 " on the final build environment. ", false,
80 "Variables that Provide Information");
81 cm->DefineProperty
82 ("CMAKE_CROSSCOMPILING", cmProperty::VARIABLE,
83 "Is CMake currently cross compiling.",
84 "This variable will be set to true by CMake if CMake is cross "
85 "compiling. Specifically if the build platform is different "
86 "from the target platform.", false,
87 "Variables that Provide Information");
88 cm->DefineProperty
89 ("CMAKE_CACHEFILE_DIR", cmProperty::VARIABLE,
90 "The directory with the CMakeCache.txt file.",
91 "This is the full path to the directory that has the "
92 "CMakeCache.txt file in it. This is the same as "
93 "CMAKE_BINARY_DIR.", false,
94 "Variables that Provide Information");
95 cm->DefineProperty
96 ("CMAKE_CACHE_MAJOR_VERSION", cmProperty::VARIABLE,
97 "Major version of CMake used to create the CMakeCache.txt file",
98 "This is stores the major version of CMake used to "
99 "write a CMake cache file. It is only different when "
100 "a different version of CMake is run on a previously "
101 "created cache file.", false,
102 "Variables that Provide Information");
103 cm->DefineProperty
104 ("CMAKE_CACHE_MINOR_VERSION", cmProperty::VARIABLE,
105 "Minor version of CMake used to create the CMakeCache.txt file",
106 "This is stores the minor version of CMake used to "
107 "write a CMake cache file. It is only different when "
108 "a different version of CMake is run on a previously "
109 "created cache file.", false,
110 "Variables that Provide Information");
112 cm->DefineProperty
113 ("CMAKE_CACHE_PATCH_VERSION", cmProperty::VARIABLE,
114 "Patch version of CMake used to create the CMakeCache.txt file",
115 "This is stores the patch version of CMake used to "
116 "write a CMake cache file. It is only different when "
117 "a different version of CMake is run on a previously "
118 "created cache file.", false,
119 "Variables that Provide Information");
121 cm->DefineProperty
122 ("CMAKE_CFG_INTDIR", cmProperty::VARIABLE,
123 "Build-time reference to per-configuration output subdirectory.",
124 "For native build systems supporting multiple configurations "
125 "in the build tree (such as Visual Studio and Xcode), "
126 "the value is a reference to a build-time variable specifying "
127 "the name of the per-configuration output subdirectory. "
128 "On Makefile generators this evaluates to \".\" because there "
129 "is only one configuration in a build tree. "
130 "Example values:\n"
131 " $(IntDir) = Visual Studio 6\n"
132 " $(OutDir) = Visual Studio 7, 8, 9\n"
133 " $(Configuration) = Visual Studio 10\n"
134 " $(CONFIGURATION) = Xcode\n"
135 " . = Make-based tools\n"
136 "Since these values are evaluated by the native build system, this "
137 "variable is suitable only for use in command lines that will be "
138 "evaluated at build time. "
139 "Example of intended usage:\n"
140 " add_executable(mytool mytool.c)\n"
141 " add_custom_command(\n"
142 " OUTPUT out.txt\n"
143 " COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool\n"
144 " ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt\n"
145 " DEPENDS mytool in.txt\n"
146 " )\n"
147 " add_custom_target(drive ALL DEPENDS out.txt)\n"
148 "Note that CMAKE_CFG_INTDIR is no longer necessary for this purpose "
149 "but has been left for compatibility with existing projects. "
150 "Instead add_custom_command() recognizes executable target names in "
151 "its COMMAND option, so "
152 "\"${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool\" can be "
153 "replaced by just \"mytool\"."
154 "\n"
155 "This variable is read-only. Setting it is undefined behavior. "
156 "In multi-configuration build systems the value of this variable "
157 "is passed as the value of preprocessor symbol \"CMAKE_INTDIR\" to "
158 "the compilation of all source files.",false,
159 "Variables that Provide Information");
161 cm->DefineProperty
162 ("CMAKE_CTEST_COMMAND", cmProperty::VARIABLE,
163 "Full path to ctest command installed with cmake.",
164 "This is the full path to the CTest executable ctest "
165 "which is useful from custom commands that want "
166 " to use the cmake -E option for portable system "
167 "commands.",false,
168 "Variables that Provide Information");
170 cm->DefineProperty
171 ("CMAKE_DL_LIBS", cmProperty::VARIABLE,
172 "Name of library containing dlopen and dlcose.",
173 "The name of the library that has dlopen and "
174 "dlclose in it, usually -ldl on most UNIX machines.",false,
175 "Variables that Provide Information");
177 cm->DefineProperty
178 ("CMAKE_EDIT_COMMAND", cmProperty::VARIABLE,
179 "Full path to cmake-gui or ccmake.",
180 "This is the full path to the CMake executable "
181 "that can graphically edit the cache. For example,"
182 " cmake-gui, ccmake, or cmake -i.",false,
183 "Variables that Provide Information");
185 cm->DefineProperty
186 ("CMAKE_GENERATOR", cmProperty::VARIABLE,
187 "The generator used to build the project.",
188 "The name of the generator that is being used to generate the "
189 "build files. (e.g. \"Unix Makefiles\", "
190 "\"Visual Studio 6\", etc.)",false,
191 "Variables that Provide Information");
192 cm->DefineProperty
193 ("CMAKE_HOME_DIRECTORY", cmProperty::VARIABLE,
194 "Path to top of source tree.",
195 "This is the path to the top level of the source tree.",false,
196 "Variables that Provide Information");
197 cm->DefineProperty
198 ("CMAKE_LINK_LIBRARY_SUFFIX", cmProperty::VARIABLE,
199 "The suffix for libraries that you link to.",
200 "The suffix to use for the end of a library, .lib on Windows.",false,
201 "Variables that Provide Information");
202 cm->DefineProperty
203 ("CMAKE_EXECUTABLE_SUFFIX", cmProperty::VARIABLE,
204 "The suffix for executables on this platform.",
205 "The suffix to use for the end of an executable if any, "
206 ".exe on Windows."
207 "\n"
208 "CMAKE_EXECUTABLE_SUFFIX_<LANG> overrides this for language <LANG>."
209 ,false, "Variables that Provide Information");
210 cm->DefineProperty
211 ("CMAKE_MAJOR_VERSION", cmProperty::VARIABLE,
212 "The Major version of cmake (i.e. the 2 in 2.X.X)",
213 "This specifies the major version of the CMake executable"
214 " being run.",false,
215 "Variables that Provide Information");
216 cm->DefineProperty
217 ("CMAKE_MAKE_PROGRAM", cmProperty::VARIABLE,
218 "See CMAKE_BUILD_TOOL.",
219 "This variable is around for backwards compatibility, "
220 "see CMAKE_BUILD_TOOL.",false,
221 "Variables that Provide Information");
222 cm->DefineProperty
223 ("CMAKE_MINOR_VERSION", cmProperty::VARIABLE,
224 "The Minor version of cmake (i.e. the 4 in X.4.X).",
225 "This specifies the minor version of the CMake"
226 " executable being run.",false,
227 "Variables that Provide Information");
228 cm->DefineProperty
229 ("CMAKE_PATCH_VERSION", cmProperty::VARIABLE,
230 "The patch version of cmake (i.e. the 3 in X.X.3).",
231 "This specifies the patch version of the CMake"
232 " executable being run.",false,
233 "Variables that Provide Information");
234 cm->DefineProperty
235 ("CMAKE_VERSION", cmProperty::VARIABLE,
236 "The full version of cmake in major.minor.patch format.",
237 "This specifies the full version of the CMake executable being run. "
238 "This variable is defined by versions 2.6.3 and higher. "
239 "See variables CMAKE_MAJOR_VERSION, CMAKE_MINOR_VERSION, and "
240 "CMAKE_PATCH_VERSION for individual version components.", false,
241 "Variables that Provide Information");
243 cm->DefineProperty
244 ("CMAKE_PARENT_LIST_FILE", cmProperty::VARIABLE,
245 "Full path to the parent listfile of the one currently being processed.",
246 "As CMake processes the listfiles in your project this "
247 "variable will always be set to the listfile that included "
248 "or somehow invoked the one currently being "
249 "processed. See also CMAKE_CURRENT_LIST_FILE.",false,
250 "Variables that Provide Information");
252 cm->DefineProperty
253 ("CMAKE_PROJECT_NAME", cmProperty::VARIABLE,
254 "The name of the current project.",
255 "This specifies name of the current project from"
256 " the closest inherited PROJECT command.",false,
257 "Variables that Provide Information");
258 cm->DefineProperty
259 ("CMAKE_RANLIB", cmProperty::VARIABLE,
260 "Name of randomizing tool for static libraries.",
261 "This specifies name of the program that randomizes "
262 "libraries on UNIX, not used on Windows, but may be present.",false,
263 "Variables that Provide Information");
264 cm->DefineProperty
265 ("CMAKE_ROOT", cmProperty::VARIABLE,
266 "Install directory for running cmake.",
267 "This is the install root for the running CMake and"
268 " the Modules directory can be found here. This is"
269 " commonly used in this format: ${CMAKE_ROOT}/Modules",false,
270 "Variables that Provide Information");
271 cm->DefineProperty
272 ("CMAKE_SIZEOF_VOID_P", cmProperty::VARIABLE,
273 "Size of a void pointer.",
274 "This is set to the size of a pointer on the machine, "
275 "and is determined by a try compile. If a 64 bit size "
276 "is found, then the library search path is modified to "
277 "look for 64 bit libraries first.",false,
278 "Variables that Provide Information");
279 cm->DefineProperty
280 ("CMAKE_SKIP_RPATH", cmProperty::VARIABLE,
281 "If true, do not add run time path information.",
282 "If this is set to TRUE, then the rpath information "
283 "is not added to compiled executables. The default "
284 "is to add rpath information if the platform supports it."
285 "This allows for easy running from the build tree.",false,
286 "Variables that Provide Information");
287 cm->DefineProperty
288 ("CMAKE_SOURCE_DIR", cmProperty::VARIABLE,
289 "Source directory for project.",
290 "This is the top level source directory for the project. "
291 "It corresponds to the source directory given to "
292 "cmake-gui or ccmake.",false,
293 "Variables that Provide Information");
294 cm->DefineProperty
295 ("CMAKE_STANDARD_LIBRARIES", cmProperty::VARIABLE,
296 "Libraries linked into every executable and shared library.",
297 "This is the list of libraries that are linked "
298 "into all executables and libraries.",false,
299 "Variables that Provide Information");
300 cm->DefineProperty
301 ("CMAKE_USING_VC_FREE_TOOLS", cmProperty::VARIABLE,
302 "True if free visual studio tools being used.",
303 "This is set to true if the compiler is Visual "
304 "Studio free tools.",false,
305 "Variables that Provide Information");
306 cm->DefineProperty
307 ("CMAKE_VERBOSE_MAKEFILE", cmProperty::VARIABLE,
308 "Create verbose makefiles if on.",
309 "This variable defaults to false. You can set "
310 "this variable to true to make CMake produce verbose "
311 "makefiles that show each command line as it is used.",false,
312 "Variables that Provide Information");
313 cm->DefineProperty
314 ("PROJECT_BINARY_DIR", cmProperty::VARIABLE,
315 "Full path to build directory for project.",
316 "This is the binary directory of the most recent "
317 "PROJECT command.",false,"Variables that Provide Information");
318 cm->DefineProperty
319 ("PROJECT_NAME", cmProperty::VARIABLE,
320 "Name of the project given to the project command.",
321 "This is the name given to the most "
322 "recent PROJECT command. ",false,
323 "Variables that Provide Information");
324 cm->DefineProperty
325 ("PROJECT_SOURCE_DIR", cmProperty::VARIABLE,
326 "Top level source directory for the current project.",
327 "This is the source directory of the most recent "
328 "PROJECT command.",false,
329 "Variables that Provide Information");
330 cm->DefineProperty
331 ("[Project name]_BINARY_DIR", cmProperty::VARIABLE,
332 "Top level binary directory for the named project.",
333 "A variable is created with the name used in the PROJECT "
334 "command, and is the binary directory for the project. "
335 " This can be useful when SUBDIR is used to connect "
336 "several projects.",false,
337 "Variables that Provide Information");
338 cm->DefineProperty
339 ("[Project name]_SOURCE_DIR", cmProperty::VARIABLE,
340 "Top level source directory for the named project.",
341 "A variable is created with the name used in the PROJECT "
342 "command, and is the source directory for the project."
343 " This can be useful when add_subdirectory "
344 "is used to connect several projects.",false,
345 "Variables that Provide Information");
347 cm->DefineProperty
348 ("CMAKE_IMPORT_LIBRARY_PREFIX", cmProperty::VARIABLE,
349 "The prefix for import libraries that you link to.",
350 "The prefix to use for the name of an import library if used "
351 "on this platform."
352 "\n"
353 "CMAKE_IMPORT_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>."
354 ,false, "Variables that Provide Information");
355 cm->DefineProperty
356 ("CMAKE_IMPORT_LIBRARY_SUFFIX", cmProperty::VARIABLE,
357 "The suffix for import libraries that you link to.",
358 "The suffix to use for the end of an import library if used "
359 "on this platform."
360 "\n"
361 "CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>."
362 ,false, "Variables that Provide Information");
363 cm->DefineProperty
364 ("CMAKE_SHARED_LIBRARY_PREFIX", cmProperty::VARIABLE,
365 "The prefix for shared libraries that you link to.",
366 "The prefix to use for the name of a shared library, lib on UNIX."
367 "\n"
368 "CMAKE_SHARED_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>."
369 ,false, "Variables that Provide Information");
370 cm->DefineProperty
371 ("CMAKE_SHARED_LIBRARY_SUFFIX", cmProperty::VARIABLE,
372 "The suffix for shared libraries that you link to.",
373 "The suffix to use for the end of a shared library, .dll on Windows."
374 "\n"
375 "CMAKE_SHARED_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>."
376 ,false, "Variables that Provide Information");
377 cm->DefineProperty
378 ("CMAKE_SHARED_MODULE_PREFIX", cmProperty::VARIABLE,
379 "The prefix for loadable modules that you link to.",
380 "The prefix to use for the name of a loadable module on this platform."
381 "\n"
382 "CMAKE_SHARED_MODULE_PREFIX_<LANG> overrides this for language <LANG>."
383 ,false, "Variables that Provide Information");
384 cm->DefineProperty
385 ("CMAKE_SHARED_MODULE_SUFFIX", cmProperty::VARIABLE,
386 "The suffix for shared libraries that you link to.",
387 "The suffix to use for the end of a loadable module on this platform"
388 "\n"
389 "CMAKE_SHARED_MODULE_SUFFIX_<LANG> overrides this for language <LANG>."
390 ,false, "Variables that Provide Information");
391 cm->DefineProperty
392 ("CMAKE_STATIC_LIBRARY_PREFIX", cmProperty::VARIABLE,
393 "The prefix for static libraries that you link to.",
394 "The prefix to use for the name of a static library, lib on UNIX."
395 "\n"
396 "CMAKE_STATIC_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>."
397 ,false, "Variables that Provide Information");
398 cm->DefineProperty
399 ("CMAKE_STATIC_LIBRARY_SUFFIX", cmProperty::VARIABLE,
400 "The suffix for static libraries that you link to.",
401 "The suffix to use for the end of a static library, .lib on Windows."
402 "\n"
403 "CMAKE_STATIC_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>."
404 ,false, "Variables that Provide Information");
405 cm->DefineProperty
406 ("CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES", cmProperty::VARIABLE,
407 "Additional suffixes for shared libraries.",
408 "Extensions for shared libraries other than that specified by "
409 "CMAKE_SHARED_LIBRARY_SUFFIX, if any. "
410 "CMake uses this to recognize external shared library files during "
411 "analysis of libraries linked by a target.",
412 false,
413 "Variables that Provide Information");
416 // Variables defined by cmake, that change the behavior
417 // of cmake
418 cm->DefineProperty
419 ("CMAKE_FIND_LIBRARY_PREFIXES", cmProperty::VARIABLE,
420 "Prefixes to prepend when looking for libraries.",
421 "This specifies what prefixes to add to library names when "
422 "the find_library command looks for libraries. On UNIX "
423 "systems this is typically lib, meaning that when trying "
424 "to find the foo library it will look for libfoo.",
425 false,
426 "Variables That Change Behavior");
428 cm->DefineProperty
429 ("CMAKE_FIND_LIBRARY_SUFFIXES", cmProperty::VARIABLE,
430 "Suffixes to append when looking for libraries.",
431 "This specifies what suffixes to add to library names when "
432 "the find_library command looks for libraries. On Windows "
433 "systems this is typically .lib and .dll, meaning that when trying "
434 "to find the foo library it will look for foo.dll etc.",
435 false,
436 "Variables That Change Behavior");
438 cm->DefineProperty
439 ("CMAKE_CONFIGURATION_TYPES", cmProperty::VARIABLE,
440 "Specifies the available build types.",
441 "This specifies what build types will be available such as "
442 "Debug, Release, RelWithDebInfo etc. This has reasonable defaults "
443 "on most platforms. But can be extended to provide other "
444 "build types. See also CMAKE_BUILD_TYPE.",
445 false,
446 "Variables That Change Behavior");
448 cm->DefineProperty
449 ("CMAKE_BUILD_TYPE", cmProperty::VARIABLE,
450 "Specifies the build type for make based generators.",
451 "This specifies what build type will be built in this tree. "
452 " Possible values are empty, Debug, Release, RelWithDebInfo"
453 " and MinSizeRel. This variable is only supported for "
454 "make based generators. If this variable is supported, "
455 "then CMake will also provide initial values for the "
456 "variables with the name "
457 " CMAKE_C_FLAGS_[Debug|Release|RelWithDebInfo|MinSizeRel]."
458 " For example, if CMAKE_BUILD_TYPE is Debug, then "
459 "CMAKE_C_FLAGS_DEBUG will be added to the CMAKE_C_FLAGS.",false,
460 "Variables That Change Behavior");
462 cm->DefineProperty
463 ("CMAKE_BACKWARDS_COMPATIBILITY", cmProperty::VARIABLE,
464 "Version of cmake required to build project",
465 "From the point of view of backwards compatibility, this "
466 "specifies what version of CMake should be supported. By "
467 "default this value is the version number of CMake that "
468 "you are running. You can set this to an older version of"
469 " CMake to support deprecated commands of CMake in projects"
470 " that were written to use older versions of CMake. This "
471 "can be set by the user or set at the beginning of a "
472 "CMakeLists file.",false,
473 "Variables That Change Behavior");
475 cm->DefineProperty
476 ("CMAKE_INSTALL_PREFIX", cmProperty::VARIABLE,
477 "Install directory used by install.",
478 "If \"make install\" is invoked or INSTALL is built"
479 ", this directory is pre-pended onto all install "
480 "directories. This variable defaults to /usr/local"
481 " on UNIX and c:/Program Files on Windows.",false,
482 "Variables That Change Behavior");
484 cm->DefineProperty
485 ("CMAKE_SKIP_INSTALL_ALL_DEPENDENCY", cmProperty::VARIABLE,
486 "Don't make the install target depend on the all target.",
487 "By default, the \"install\" target depends on the \"all\" target. "
488 "This has the effect, that when \"make install\" is invoked or INSTALL "
489 "is built, first the \"all\" target is built, then the installation "
490 "starts. "
491 "If CMAKE_SKIP_INSTALL_ALL_DEPENDENCY is set to TRUE, this dependency "
492 "is not created, so the installation process will start immediately, "
493 "independent from whether the project has been completely built or not."
494 ,false,
495 "Variables That Change Behavior");
497 cm->DefineProperty
498 ("CMAKE_MODULE_PATH", cmProperty::VARIABLE,
499 "Path to look for cmake modules to load.",
500 "Specifies a path to override the default search path for "
501 "CMake modules. For example include commands will look "
502 "in this path first for modules to include.",
503 false,
504 "Variables That Change Behavior");
506 cm->DefineProperty
507 ("CMAKE_PREFIX_PATH", cmProperty::VARIABLE,
508 "Path used for searching by FIND_XXX(), with appropriate suffixes added.",
509 "Specifies a path which will be used by the FIND_XXX() commands. It "
510 "contains the \"base\" directories, the FIND_XXX() commands append "
511 "appropriate subdirectories to the base directories. So FIND_PROGRAM() "
512 "adds /bin to each of the directories in the path, FIND_LIBRARY() "
513 "appends /lib to each of the directories, and FIND_PATH() and "
514 "FIND_FILE() append /include . By default it is empty, it is intended "
515 "to be set by the project. See also CMAKE_SYSTEM_PREFIX_PATH, "
516 "CMAKE_INCLUDE_PATH, CMAKE_LIBRARY_PATH, CMAKE_PROGRAM_PATH.", false,
517 "Variables That Change Behavior");
519 cm->DefineProperty
520 ("CMAKE_INCLUDE_PATH", cmProperty::VARIABLE,
521 "Path used for searching by FIND_FILE() and FIND_PATH().",
522 "Specifies a path which will be used both by FIND_FILE() and "
523 "FIND_PATH(). Both commands will check each of the contained directories "
524 "for the existence of the file which is currently searched. By default "
525 "it is empty, it is intended to be set by the project. See also "
526 "CMAKE_SYSTEM_INCLUDE_PATH, CMAKE_PREFIX_PATH.", false,
527 "Variables That Change Behavior");
529 cm->DefineProperty
530 ("CMAKE_LIBRARY_PATH", cmProperty::VARIABLE,
531 "Path used for searching by FIND_LIBRARY().",
532 "Specifies a path which will be used by FIND_LIBRARY(). FIND_LIBRARY() "
533 "will check each of the contained directories for the existence of the "
534 "library which is currently searched. By default it is empty, it is "
535 "intended to be set by the project. See also CMAKE_SYSTEM_LIBRARY_PATH, "
536 "CMAKE_PREFIX_PATH.", false,
537 "Variables That Change Behavior");
539 cm->DefineProperty
540 ("CMAKE_PROGRAM_PATH", cmProperty::VARIABLE,
541 "Path used for searching by FIND_PROGRAM().",
542 "Specifies a path which will be used by FIND_PROGRAM(). FIND_PROGRAM() "
543 "will check each of the contained directories for the existence of the "
544 "program which is currently searched. By default it is empty, it is "
545 "intended to be set by the project. See also CMAKE_SYSTEM_PROGRAM_PATH, "
546 " CMAKE_PREFIX_PATH.", false,
547 "Variables That Change Behavior");
549 cm->DefineProperty
550 ("CMAKE_SYSTEM_PREFIX_PATH", cmProperty::VARIABLE,
551 "Path used for searching by FIND_XXX(), with appropriate suffixes added.",
552 "Specifies a path which will be used by the FIND_XXX() commands. It "
553 "contains the \"base\" directories, the FIND_XXX() commands append "
554 "appropriate subdirectories to the base directories. So FIND_PROGRAM() "
555 "adds /bin to each of the directories in the path, FIND_LIBRARY() "
556 "appends /lib to each of the directories, and FIND_PATH() and "
557 "FIND_FILE() append /include . By default this contains the standard "
558 "directories for the current system. It is NOT intended "
559 "to be modified by the project, use CMAKE_PREFIX_PATH for this. See also "
560 "CMAKE_SYSTEM_INCLUDE_PATH, CMAKE_SYSTEM_LIBRARY_PATH, "
561 "CMAKE_SYSTEM_PROGRAM_PATH.", false,
562 "Variables That Change Behavior");
564 cm->DefineProperty
565 ("CMAKE_SYSTEM_INCLUDE_PATH", cmProperty::VARIABLE,
566 "Path used for searching by FIND_FILE() and FIND_PATH().",
567 "Specifies a path which will be used both by FIND_FILE() and "
568 "FIND_PATH(). Both commands will check each of the contained directories "
569 "for the existence of the file which is currently searched. By default "
570 "it contains the standard directories for the current system. It is "
571 "NOT intended to be modified by the project, use CMAKE_INCLUDE_PATH "
572 "for this. See also CMAKE_SYSTEM_PREFIX_PATH.", false,
573 "Variables That Change Behavior");
575 cm->DefineProperty
576 ("CMAKE_SYSTEM_LIBRARY_PATH", cmProperty::VARIABLE,
577 "Path used for searching by FIND_LIBRARY().",
578 "Specifies a path which will be used by FIND_LIBRARY(). FIND_LIBRARY() "
579 "will check each of the contained directories for the existence of the "
580 "library which is currently searched. By default it contains the "
581 "standard directories for the current system. It is NOT intended to be "
582 "modified by the project, use CMAKE_SYSTEM_LIBRARY_PATH for this. See "
583 "also CMAKE_SYSTEM_PREFIX_PATH.", false,
584 "Variables That Change Behavior");
586 cm->DefineProperty
587 ("CMAKE_SYSTEM_PROGRAM_PATH", cmProperty::VARIABLE,
588 "Path used for searching by FIND_PROGRAM().",
589 "Specifies a path which will be used by FIND_PROGRAM(). FIND_PROGRAM() "
590 "will check each of the contained directories for the existence of the "
591 "program which is currently searched. By default it contains the "
592 "standard directories for the current system. It is NOT intended to be "
593 "modified by the project, use CMAKE_PROGRAM_PATH for this. See also "
594 "CMAKE_SYSTEM_PREFIX_PATH.", false,
595 "Variables That Change Behavior");
597 cm->DefineProperty
598 ("CMAKE_USER_MAKE_RULES_OVERRIDE", cmProperty::VARIABLE,
599 "Specify a file that can change the build rule variables.",
600 "If this variable is set, it should to point to a "
601 "CMakeLists.txt file that will be read in by CMake "
602 "after all the system settings have been set, but "
603 "before they have been used. This would allow you "
604 "to override any variables that need to be changed "
605 "for some special project. ",false,
606 "Variables That Change Behavior");
608 cm->DefineProperty
609 ("BUILD_SHARED_LIBS", cmProperty::VARIABLE,
610 "Global flag to cause add_library to create shared libraries if on.",
611 "If present and true, this will cause all libraries to be "
612 "built shared unless the library was explicitly added as a "
613 "static library. This variable is often added to projects "
614 "as an OPTION so that each user of a project can decide if "
615 "they want to build the project using shared or static "
616 "libraries.",false,
617 "Variables That Change Behavior");
619 cm->DefineProperty
620 ("CMAKE_NOT_USING_CONFIG_FLAGS", cmProperty::VARIABLE,
621 "Skip _BUILD_TYPE flags if true.",
622 "This is an internal flag used by the generators in "
623 "CMake to tell CMake to skip the _BUILD_TYPE flags.",false,
624 "Variables That Change Behavior");
626 cm->DefineProperty
627 ("CMAKE_MFC_FLAG", cmProperty::VARIABLE,
628 "Tell cmake to use MFC for an executable or dll.",
629 "This can be set in a CMakeLists.txt file and will "
630 "enable MFC in the application. It should be set "
631 "to 1 for static the static MFC library, and 2 for "
632 "the shared MFC library. This is used in visual "
633 "studio 6 and 7 project files. The CMakeSetup "
634 "dialog used MFC and the CMakeLists.txt looks like this:\n"
635 "add_definitions(-D_AFXDLL)\n"
636 "set(CMAKE_MFC_FLAG 2)\n"
637 "add_executable(CMakeSetup WIN32 ${SRCS})\n",false,
638 "Variables That Change Behavior");
640 cm->DefineProperty
641 ("CMAKE_COLOR_MAKEFILE", cmProperty::VARIABLE,
642 "Enables color output when using the Makefile generator.",
643 "When enabled, the generated Makefiles will produce colored output. "
644 "Default is ON.",false,
645 "Variables That Change Behavior");
648 // Variables defined by CMake that describe the system
650 cm->DefineProperty
651 ("CMAKE_SYSTEM", cmProperty::VARIABLE,
652 "Name of system cmake is compiling for.",
653 "This variable is the composite of CMAKE_SYSTEM_NAME "
654 "and CMAKE_SYSTEM_VERSION, like this "
655 "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}. "
656 "If CMAKE_SYSTEM_VERSION is not set, then "
657 "CMAKE_SYSTEM is the same as CMAKE_SYSTEM_NAME.",false,
658 "Variables That Describe the System");
659 cm->DefineProperty
660 ("CMAKE_SYSTEM_NAME", cmProperty::VARIABLE,
661 "Name of the OS CMake is building for.",
662 "This is the name of the operating system on "
663 "which CMake is targeting. On systems that "
664 "have the uname command, this variable is set "
665 "to the output of uname -s. Linux, Windows, "
666 " and Darwin for Mac OSX are the values found "
667 " on the big three operating systems." ,false,
668 "Variables That Describe the System");
669 cm->DefineProperty
670 ("CMAKE_SYSTEM_PROCESSOR", cmProperty::VARIABLE,
671 "The name of the CPU CMake is building for.",
672 "On systems that support uname, this variable is "
673 "set to the output of uname -p, on windows it is "
674 "set to the value of the environment variable "
675 "PROCESSOR_ARCHITECTURE",false,
676 "Variables That Describe the System");
677 cm->DefineProperty
678 ("CMAKE_SYSTEM_VERSION", cmProperty::VARIABLE,
679 "OS version CMake is building for.",
680 "A numeric version string for the system, on "
681 "systems that support uname, this variable is "
682 "set to the output of uname -r. On other "
683 "systems this is set to major-minor version numbers.",false,
684 "Variables That Describe the System");
686 cm->DefineProperty
687 ("CMAKE_HOST_SYSTEM", cmProperty::VARIABLE,
688 "Name of system cmake is being run on.",
689 "The same as CMAKE_SYSTEM but for the host system instead "
690 "of the target system when cross compiling.",false,
691 "Variables That Describe the System");
692 cm->DefineProperty
693 ("CMAKE_HOST_SYSTEM_NAME", cmProperty::VARIABLE,
694 "Name of the OS CMake is running on.",
695 "The same as CMAKE_SYSTEM_NAME but for the host system instead "
696 "of the target system when cross compiling.",false,
697 "Variables That Describe the System");
698 cm->DefineProperty
699 ("CMAKE_HOST_SYSTEM_PROCESSOR", cmProperty::VARIABLE,
700 "The name of the CPU CMake is running on.",
701 "The same as CMAKE_SYSTEM_PROCESSOR but for the host system instead "
702 "of the target system when cross compiling.",false,
703 "Variables That Describe the System");
704 cm->DefineProperty
705 ("CMAKE_HOST_SYSTEM_VERSION", cmProperty::VARIABLE,
706 "OS version CMake is running on.",
707 "The same as CMAKE_SYSTEM_VERSION but for the host system instead "
708 "of the target system when cross compiling.",false,
709 "Variables That Describe the System");
711 cm->DefineProperty
712 ("APPLE", cmProperty::VARIABLE,
713 "True if running on Mac OSX.",
714 "Set to true on Mac OSX.",false,
715 "Variables That Describe the System");
717 cm->DefineProperty
718 ("BORLAND", cmProperty::VARIABLE,
719 "True of the borland compiler is being used.",
720 "This is set to true if the Borland compiler is being used.",false,
721 "Variables That Describe the System");
723 cm->DefineProperty
724 ("CYGWIN", cmProperty::VARIABLE,
725 "True for cygwin.",
726 "Set to true when using CYGWIN.",false,
727 "Variables That Describe the System");
729 cm->DefineProperty
730 ("MSVC", cmProperty::VARIABLE,
731 "True when using Microsoft Visual C",
732 "Set to true when the compiler is some version of Microsoft Visual C.",
733 false,
734 "Variables That Describe the System");
736 cm->DefineProperty
737 ("MSVC80", cmProperty::VARIABLE,
738 "True when using Microsoft Visual C 8.0",
739 "Set to true when the compiler is version 8.0 of Microsoft Visual C.",
740 false,
741 "Variables That Describe the System");
743 cm->DefineProperty
744 ("MSVC_IDE", cmProperty::VARIABLE,
745 "True when using the Microsoft Visual C IDE",
746 "Set to true when the target platform is the Microsoft Visual C IDE, "
747 "as opposed to the command line compiler.",
748 false,
749 "Variables That Describe the System");
751 cm->DefineProperty
752 ("MSVC_VERSION", cmProperty::VARIABLE,
753 "The version of Microsoft Visual C/C++ being used if any.",
754 "The version of Microsoft Visual C/C++ being used if any. "
755 "For example 1300 is MSVC 6.0.",
756 false,
757 "Variables That Describe the System");
759 cm->DefineProperty
760 ("CMAKE_CL_64", cmProperty::VARIABLE,
761 "Using the 64 bit compiler from Microsoft",
762 "Set to true when using the 64 bit cl compiler from Microsoft.",
763 false,
764 "Variables That Describe the System");
766 cm->DefineProperty
767 ("CMAKE_COMPILER_2005", cmProperty::VARIABLE,
768 "Using the Visual Studio 2005 compiler from Microsoft",
769 "Set to true when using the Visual Studio 2005 compiler "
770 "from Microsoft.",
771 false,
772 "Variables That Describe the System");
774 cm->DefineProperty
775 ("UNIX", cmProperty::VARIABLE,
776 "True for UNIX and UNIX like operating systems.",
777 "Set to true when the target system is UNIX or UNIX like "
778 "(i.e. APPLE and CYGWIN).",false,
779 "Variables That Describe the System");
781 cm->DefineProperty
782 ("WIN32", cmProperty::VARIABLE,
783 "True on windows systems, including win64.",
784 "Set to true when the target system is Windows and on cygwin.",false,
785 "Variables That Describe the System");
787 cm->DefineProperty
788 ("CMAKE_HOST_APPLE", cmProperty::VARIABLE,
789 "True for Apple OSXoperating systems.",
790 "Set to true when the host system is Apple OSX.",
791 false,
792 "Variables That Describe the System");
794 cm->DefineProperty
795 ("CMAKE_HOST_UNIX", cmProperty::VARIABLE,
796 "True for UNIX and UNIX like operating systems.",
797 "Set to true when the host system is UNIX or UNIX like "
798 "(i.e. APPLE and CYGWIN).",false,
799 "Variables That Describe the System");
801 cm->DefineProperty
802 ("CMAKE_HOST_WIN32", cmProperty::VARIABLE,
803 "True on windows systems, including win64.",
804 "Set to true when the host system is Windows and on cygwin.",false,
805 "Variables That Describe the System");
807 cm->DefineProperty
808 ("CMAKE_OBJECT_PATH_MAX", cmProperty::VARIABLE,
809 "Maximum object file full-path length allowed by native build tools.",
810 "CMake computes for every source file an object file name that is "
811 "unique to the source file and deterministic with respect to the "
812 "full path to the source file. "
813 "This allows multiple source files in a target to share the same name "
814 "if they lie in different directories without rebuilding when one is "
815 "added or removed. "
816 "However, it can produce long full paths in a few cases, so CMake "
817 "shortens the path using a hashing scheme when the full path to an "
818 "object file exceeds a limit. "
819 "CMake has a built-in limit for each platform that is sufficient for "
820 "common tools, but some native tools may have a lower limit. "
821 "This variable may be set to specify the limit explicitly. "
822 "The value must be an integer no less than 128.",false,
823 "Variables That Describe the System");
825 // Variables that affect the building of object files and
826 // targets.
828 cm->DefineProperty
829 ("CMAKE_INCLUDE_CURRENT_DIR", cmProperty::VARIABLE,
830 "Automatically add the current source- and build directories "
831 "to the include path.",
832 "If this variable is enabled, CMake automatically adds in each "
833 "directory ${CMAKE_CURRENT_SOURCE_DIR} and ${CMAKE_CURRENT_BINARY_DIR} "
834 "to the include path for this directory. These additional include "
835 "directories do not propagate down to subdirectories. This is useful "
836 "mainly for out-of-source builds, where files generated into the "
837 "build tree are included by files located in the source tree.\n"
838 "By default CMAKE_INCLUDE_CURRENT_DIR is OFF.",
839 false,
840 "Variables that Control the Build");
842 cm->DefineProperty
843 ("CMAKE_INSTALL_RPATH", cmProperty::VARIABLE,
844 "The rpath to use for installed targets.",
845 "A semicolon-separated list specifying the rpath "
846 "to use in installed targets (for platforms that support it). "
847 "This is used to initialize the target property "
848 "INSTALL_RPATH for all targets.",
849 false,
850 "Variables that Control the Build");
852 cm->DefineProperty
853 ("CMAKE_INSTALL_RPATH_USE_LINK_PATH", cmProperty::VARIABLE,
854 "Add paths to linker search and installed rpath.",
855 "CMAKE_INSTALL_RPATH_USE_LINK_PATH is a boolean that if set to true "
856 "will append directories in the linker search path and outside the "
857 "project to the INSTALL_RPATH. "
858 "This is used to initialize the target property "
859 "INSTALL_RPATH_USE_LINK_PATH for all targets.",
860 false,
861 "Variables that Control the Build");
863 cm->DefineProperty
864 ("CMAKE_INSTALL_NAME_DIR", cmProperty::VARIABLE,
865 "Mac OSX directory name for installed targets.",
866 "CMAKE_INSTALL_NAME_DIR is used to initialize the "
867 "INSTALL_NAME_DIR property on all targets. See that target "
868 "property for more information.",
869 false,
870 "Variables that Control the Build");
872 cm->DefineProperty
873 ("CMAKE_Fortran_MODULE_DIRECTORY", cmProperty::VARIABLE,
874 "Fortran module output directory.",
875 "This variable is used to initialize the "
876 "Fortran_MODULE_DIRECTORY property on all the targets. "
877 "See that target property for additional information.",
878 false,
879 "Variables that Control the Build");
881 cm->DefineProperty
882 ("CMAKE_LIBRARY_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
883 "Where to put all the LIBRARY targets when built.",
884 "This variable is used to initialize the "
885 "LIBRARY_OUTPUT_DIRECTORY property on all the targets. "
886 "See that target property for additional information.",
887 false,
888 "Variables that Control the Build");
890 cm->DefineProperty
891 ("CMAKE_ARCHIVE_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
892 "Where to put all the ARCHIVE targets when built.",
893 "This variable is used to initialize the "
894 "ARCHIVE_OUTPUT_DIRECTORY property on all the targets. "
895 "See that target property for additional information.",
896 false,
897 "Variables that Control the Build");
899 cm->DefineProperty
900 ("CMAKE_RUNTIME_OUTPUT_DIRECTORY", cmProperty::VARIABLE,
901 "Where to put all the RUNTIME targets when built.",
902 "This variable is used to initialize the "
903 "RUNTIME_OUTPUT_DIRECTORY property on all the targets. "
904 "See that target property for additional information.",
905 false,
906 "Variables that Control the Build");
908 cm->DefineProperty
909 ("CMAKE_DEBUG_POSTFIX", cmProperty::VARIABLE,
910 "See variable CMAKE_<CONFIG>_POSTFIX.",
911 "This variable is a special case of the more-general "
912 "CMAKE_<CONFIG>_POSTFIX variable for the DEBUG configuration.",
913 false,
914 "Variables that Control the Build");
915 cm->DefineProperty
916 ("CMAKE_<CONFIG>_POSTFIX", cmProperty::VARIABLE,
917 "Default filename postfix for libraries under configuration <CONFIG>.",
918 "When a non-executable target is created its <CONFIG>_POSTFIX "
919 "target property is initialized with the value of this variable "
920 "if it is set.",
921 false,
922 "Variables that Control the Build");
924 cm->DefineProperty
925 ("CMAKE_BUILD_WITH_INSTALL_RPATH", cmProperty::VARIABLE,
926 "Use the install path for the RPATH",
927 "Normally CMake uses the build tree for the RPATH when building "
928 "executables etc on systems that use RPATH. When the software "
929 "is installed the executables etc are relinked by CMake to have "
930 "the install RPATH. If this variable is set to true then the software "
931 "is always built with the install path for the RPATH and does not "
932 "need to be relinked when installed.",false,
933 "Variables that Control the Build");
935 cm->DefineProperty
936 ("CMAKE_NO_BUILTIN_CHRPATH", cmProperty::VARIABLE,
937 "Do not use the builtin ELF editor to fix RPATHs on installation.",
938 "When an ELF binary needs to have a different RPATH after installation "
939 "than it does in the build tree, CMake uses a builtin editor to change "
940 "the RPATH in the installed copy. "
941 "If this variable is set to true then CMake will relink the binary "
942 "before installation instead of using its builtin editor.",false,
943 "Variables that Control the Build");
945 cm->DefineProperty
946 ("CMAKE_SKIP_BUILD_RPATH", cmProperty::VARIABLE,
947 "Do not include RPATHs in the build tree.",
948 "Normally CMake uses the build tree for the RPATH when building "
949 "executables etc on systems that use RPATH. When the software "
950 "is installed the executables etc are relinked by CMake to have "
951 "the install RPATH. If this variable is set to true then the software "
952 "is always built with no RPATH.",false,
953 "Variables that Control the Build");
955 cm->DefineProperty
956 ("CMAKE_EXE_LINKER_FLAGS", cmProperty::VARIABLE,
957 "Linker flags used to create executables.",
958 "Flags used by the linker when creating an executable.",false,
959 "Variables that Control the Build");
961 cm->DefineProperty
962 ("CMAKE_EXE_LINKER_FLAGS_[CMAKE_BUILD_TYPE]", cmProperty::VARIABLE,
963 "Flag used when linking an executable.",
964 "Same as CMAKE_C_FLAGS_* but used by the linker "
965 "when creating executables.",false,
966 "Variables that Control the Build");
967 cm->DefineProperty
968 ("CMAKE_LIBRARY_PATH_FLAG", cmProperty::VARIABLE,
969 "The flag used to add a library search path to a compiler.",
970 "The flag used to specify a library directory to the compiler. "
971 "On most compilers this is \"-L\".",false,
972 "Variables that Control the Build");
973 cm->DefineProperty
974 ("CMAKE_LINK_DEF_FILE_FLAG ", cmProperty::VARIABLE,
975 "Linker flag used to specify a .def file for dll creation.",
976 "The flag used to add a .def file when creating "
977 "a dll on Windows, this is only defined on Windows.",false,
978 "Variables that Control the Build");
979 cm->DefineProperty
980 ("CMAKE_LINK_LIBRARY_FLAG", cmProperty::VARIABLE,
981 "Flag used to link a library into an executable.",
982 "The flag used to specify a library to link to an executable. "
983 "On most compilers this is \"-l\".",false,
984 "Variables that Control the Build");
985 cm->DefineProperty
986 ("CMAKE_LINK_LIBRARY_FILE_FLAG", cmProperty::VARIABLE,
987 "Flag used to link a library specified by a path to its file.",
988 "The flag used before a library file path is given to the linker. "
989 "This is needed only on very few platforms.", false,
990 "Variables that Control the Build");
991 cm->DefineProperty
992 ("CMAKE_USE_RELATIVE_PATHS", cmProperty::VARIABLE,
993 "Use relative paths (May not work!).",
994 "If this is set to TRUE, then the CMake will use "
995 "relative paths between the source and binary tree. "
996 "This option does not work for more complicated "
997 "projects, and relative paths are used when possible. "
998 "In general, it is not possible to move CMake generated"
999 " makefiles to a different location regardless "
1000 "of the value of this variable.",false,
1001 "Variables that Control the Build");
1002 cm->DefineProperty
1003 ("EXECUTABLE_OUTPUT_PATH", cmProperty::VARIABLE,
1004 "Old executable location variable.",
1005 "The target property RUNTIME_OUTPUT_DIRECTORY supercedes "
1006 "this variable for a target if it is set. "
1007 "Executable targets are otherwise placed in this directory.",false,
1008 "Variables that Control the Build");
1009 cm->DefineProperty
1010 ("LIBRARY_OUTPUT_PATH", cmProperty::VARIABLE,
1011 "Old library location variable.",
1012 "The target properties ARCHIVE_OUTPUT_DIRECTORY, "
1013 "LIBRARY_OUTPUT_DIRECTORY, and RUNTIME_OUTPUT_DIRECTORY supercede "
1014 "this variable for a target if they are set. "
1015 "Library targets are otherwise placed in this directory.",false,
1016 "Variables that Control the Build");
1019 // Variables defined when the a language is enabled These variables will
1020 // also be defined whenever CMake has loaded its support for compiling (LANG)
1021 // programs. This support will be loaded whenever CMake is used to compile
1022 // (LANG) files. C and CXX are examples of the most common values for (LANG).
1024 cm->DefineProperty
1025 ("CMAKE_USER_MAKE_RULES_OVERRIDE_<LANG>", cmProperty::VARIABLE,
1026 "Specify a file that can change the build rule variables.",
1027 "If this variable is set, it should to point to a "
1028 "CMakeLists.txt file that will be read in by CMake "
1029 "after all the system settings have been set, but "
1030 "before they have been used. This would allow you "
1031 "to override any variables that need to be changed "
1032 "for some language. ",false,
1033 "Variables for Languages");
1035 cm->DefineProperty
1036 ("CMAKE_<LANG>_COMPILER", cmProperty::VARIABLE,
1037 "The full path to the compiler for LANG.",
1038 "This is the command that will be used as the <LANG> compiler. "
1039 "Once set, you can not change this variable.",false,
1040 "Variables for Languages");
1042 cm->DefineProperty
1043 ("CMAKE_<LANG>_COMPILER_ID", cmProperty::VARIABLE,
1044 "An internal variable subject to change.",
1045 "This is used in determining the compiler and is subject to change.",
1046 false,
1047 "Variables for Languages");
1049 cm->DefineProperty
1050 ("CMAKE_<LANG>_PLATFORM_ID", cmProperty::VARIABLE,
1051 "An internal variable subject to change.",
1052 "This is used in determining the platform and is subject to change.",
1053 false,
1054 "Variables for Languages");
1056 cm->DefineProperty
1057 ("CMAKE_<LANG>_COMPILER_ABI", cmProperty::VARIABLE,
1058 "An internal variable subject to change.",
1059 "This is used in determining the compiler ABI and is subject to change.",
1060 false,
1061 "Variables for Languages");
1063 cm->DefineProperty
1064 ("CMAKE_INTERNAL_PLATFORM_ABI", cmProperty::VARIABLE,
1065 "An internal variable subject to change.",
1066 "This is used in determining the compiler ABI and is subject to change.",
1067 false,
1068 "Variables for Languages");
1070 cm->DefineProperty
1071 ("CMAKE_<LANG>_SIZEOF_DATA_PTR", cmProperty::VARIABLE,
1072 "Size of pointer-to-data types for language <LANG>.",
1073 "This holds the size (in bytes) of pointer-to-data types in the target "
1074 "platform ABI. "
1075 "It is defined for languages C and CXX (C++).",
1076 false,
1077 "Variables for Languages");
1079 cm->DefineProperty
1080 ("CMAKE_COMPILER_IS_GNU<LANG>", cmProperty::VARIABLE,
1081 "True if the compiler is GNU.",
1082 "If the selected <LANG> compiler is the GNU "
1083 "compiler then this is TRUE, if not it is FALSE.",false,
1084 "Variables for Languages");
1086 cm->DefineProperty
1087 ("CMAKE_<LANG>_FLAGS_DEBUG", cmProperty::VARIABLE,
1088 "Flags for Debug build type or configuration.",
1089 "<LANG> flags used when CMAKE_BUILD_TYPE is Debug.",false,
1090 "Variables for Languages");
1092 cm->DefineProperty
1093 ("CMAKE_<LANG>_FLAGS_MINSIZEREL", cmProperty::VARIABLE,
1094 "Flags for MinSizeRel build type or configuration.",
1095 "<LANG> flags used when CMAKE_BUILD_TYPE is MinSizeRel."
1096 "Short for minimum size release.",false,
1097 "Variables for Languages");
1099 cm->DefineProperty
1100 ("CMAKE_<LANG>_FLAGS_RELEASE", cmProperty::VARIABLE,
1101 "Flags for Release build type or configuration.",
1102 "<LANG> flags used when CMAKE_BUILD_TYPE is Release",false,
1103 "Variables for Languages");
1105 cm->DefineProperty
1106 ("CMAKE_<LANG>_FLAGS_RELWITHDEBINFO", cmProperty::VARIABLE,
1107 "Flags for RelWithDebInfo type or configuration.",
1108 "<LANG> flags used when CMAKE_BUILD_TYPE is RelWithDebInfo. "
1109 "Short for Release With Debug Information.",false,
1110 "Variables for Languages");
1112 cm->DefineProperty
1113 ("CMAKE_<LANG>_COMPILE_OBJECT", cmProperty::VARIABLE,
1114 "Rule variable to compile a single object file.",
1115 "This is a rule variable that tells CMake how to "
1116 "compile a single object file for for the language <LANG>.",false,
1117 "Variables for Languages");
1119 cm->DefineProperty
1120 ("CMAKE_<LANG>_CREATE_SHARED_LIBRARY", cmProperty::VARIABLE,
1121 "Rule variable to create a shared library.",
1122 "This is a rule variable that tells CMake how to "
1123 "create a shared library for the language <LANG>.",false,
1124 "Variables for Languages");
1126 cm->DefineProperty
1127 ("CMAKE_<LANG>_CREATE_SHARED_MODULE", cmProperty::VARIABLE,
1128 "Rule variable to create a shared module.",
1129 "This is a rule variable that tells CMake how to "
1130 "create a shared library for the language <LANG>.",false,
1131 "Variables for Languages");
1133 cm->DefineProperty
1134 ("CMAKE_<LANG>_CREATE_STATIC_LIBRARY", cmProperty::VARIABLE,
1135 "Rule variable to create a static library.",
1136 "This is a rule variable that tells CMake how "
1137 "to create a static library for the language <LANG>.",false,
1138 "Variables for Languages");
1140 cm->DefineProperty
1141 ("CMAKE_<LANG>_ARCHIVE_CREATE", cmProperty::VARIABLE,
1142 "Rule variable to create a new static archive.",
1143 "This is a rule variable that tells CMake how to create a static "
1144 "archive. It is used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY "
1145 "on some platforms in order to support large object counts. "
1146 "See also CMAKE_<LANG>_ARCHIVE_APPEND and CMAKE_<LANG>_ARCHIVE_FINISH.",
1147 false, "Variables for Languages");
1149 cm->DefineProperty
1150 ("CMAKE_<LANG>_ARCHIVE_APPEND", cmProperty::VARIABLE,
1151 "Rule variable to append to a static archive.",
1152 "This is a rule variable that tells CMake how to append to a static "
1153 "archive. It is used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY "
1154 "on some platforms in order to support large object counts. "
1155 "See also CMAKE_<LANG>_ARCHIVE_CREATE and CMAKE_<LANG>_ARCHIVE_FINISH.",
1156 false, "Variables for Languages");
1158 cm->DefineProperty
1159 ("CMAKE_<LANG>_ARCHIVE_FINISH", cmProperty::VARIABLE,
1160 "Rule variable to finish an existing static archive.",
1161 "This is a rule variable that tells CMake how to finish a static "
1162 "archive. It is used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY "
1163 "on some platforms in order to support large object counts. "
1164 "See also CMAKE_<LANG>_ARCHIVE_CREATE and CMAKE_<LANG>_ARCHIVE_APPEND.",
1165 false, "Variables for Languages");
1167 cm->DefineProperty
1168 ("CMAKE_<LANG>_IGNORE_EXTENSIONS", cmProperty::VARIABLE,
1169 "File extensions that should be ignored by the build.",
1170 "This is a list of file extensions that may be "
1171 "part of a project for a given language but are not compiled. ",false,
1172 "Variables for Languages");
1174 cm->DefineProperty
1175 ("CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES", cmProperty::VARIABLE,
1176 "Directories implicitly searched by the compiler for header files.",
1177 "CMake does not explicitly specify these directories on compiler "
1178 "command lines for language <LANG>. "
1179 "This prevents system include directories from being treated as user "
1180 "include directories on some compilers.", false,
1181 "Variables for Languages");
1183 cm->DefineProperty
1184 ("CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES", cmProperty::VARIABLE,
1185 "Implicit linker search path detected for language <LANG>.",
1186 "Compilers typically pass directories containing language runtime "
1187 "libraries and default library search paths when they invoke a linker. "
1188 "These paths are implicit linker search directories for the compiler's "
1189 "language. "
1190 "CMake automatically detects these directories for each language and "
1191 "reports the results in this variable.", false,
1192 "Variables for Languages");
1194 cm->DefineProperty
1195 ("CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES", cmProperty::VARIABLE,
1196 "Implicit link libraries and flags detected for language <LANG>.",
1197 "Compilers typically pass language runtime library names and "
1198 "other flags when they invoke a linker. "
1199 "These flags are implicit link options for the compiler's language. "
1200 "CMake automatically detects these libraries and flags for each "
1201 "language and reports the results in this variable.", false,
1202 "Variables for Languages");
1204 cm->DefineProperty
1205 ("CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES", cmProperty::VARIABLE,
1206 "True if CMAKE_<LANG>_LINKER_PREFERENCE propagates across targets.",
1207 "This is used when CMake selects a linker language for a target. "
1208 "Languages compiled directly into the target are always considered. "
1209 "A language compiled into static libraries linked by the target is "
1210 "considered if this variable is true.", false,
1211 "Variables for Languages");
1213 cm->DefineProperty
1214 ("CMAKE_<LANG>_LINKER_PREFERENCE", cmProperty::VARIABLE,
1215 "Preference value for linker language selection.",
1216 "The \"linker language\" for executable, shared library, and module "
1217 "targets is the language whose compiler will invoke the linker. "
1218 "The LINKER_LANGUAGE target property sets the language explicitly. "
1219 "Otherwise, the linker language is that whose linker preference value "
1220 "is highest among languages compiled and linked into the target. "
1221 "See also the CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES variable.",
1222 false,
1223 "Variables for Languages");
1225 cm->DefineProperty
1226 ("CMAKE_<LANG>_LINK_EXECUTABLE ", cmProperty::VARIABLE,
1227 "Rule variable to link and executable.",
1228 "Rule variable to link and executable for the given language.",false,
1229 "Variables for Languages");
1231 cm->DefineProperty
1232 ("CMAKE_<LANG>_OUTPUT_EXTENSION", cmProperty::VARIABLE,
1233 "Extension for the output of a compile for a single file.",
1234 "This is the extension for an object file for "
1235 "the given <LANG>. For example .obj for C on Windows.",false,
1236 "Variables for Languages");
1238 cm->DefineProperty
1239 ("CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS", cmProperty::VARIABLE,
1240 "Extensions of source files for the given language.",
1241 "This is the list of extensions for a "
1242 "given languages source files.",false,"Variables for Languages");
1244 cm->DefineProperty(
1245 "CMAKE_<LANG>_COMPILER_LOADED", cmProperty::VARIABLE,
1246 "Defined to true if the language is enabled.",
1247 "When language <LANG> is enabled by project() or enable_language() "
1248 "this variable is defined to 1.",
1249 false,"Variables for Languages");
1251 // variables that are used by cmake but not to be documented
1252 cm->DefineProperty("CMAKE_MATCH_0", cmProperty::VARIABLE,0,0);
1253 cm->DefineProperty("CMAKE_MATCH_1", cmProperty::VARIABLE,0,0);
1254 cm->DefineProperty("CMAKE_MATCH_2", cmProperty::VARIABLE,0,0);
1255 cm->DefineProperty("CMAKE_MATCH_3", cmProperty::VARIABLE,0,0);
1256 cm->DefineProperty("CMAKE_MATCH_4", cmProperty::VARIABLE,0,0);
1257 cm->DefineProperty("CMAKE_MATCH_5", cmProperty::VARIABLE,0,0);
1258 cm->DefineProperty("CMAKE_MATCH_6", cmProperty::VARIABLE,0,0);
1259 cm->DefineProperty("CMAKE_MATCH_7", cmProperty::VARIABLE,0,0);
1260 cm->DefineProperty("CMAKE_MATCH_8", cmProperty::VARIABLE,0,0);
1261 cm->DefineProperty("CMAKE_MATCH_9", cmProperty::VARIABLE,0,0);
1263 cm->DefineProperty("CMAKE_<LANG>_COMPILER_ARG1",
1264 cmProperty::VARIABLE,0,0);
1265 cm->DefineProperty("CMAKE_<LANG>_COMPILER_ENV_VAR",
1266 cmProperty::VARIABLE,0,0);
1267 cm->DefineProperty("CMAKE_<LANG>_COMPILER_ID_RUN",
1268 cmProperty::VARIABLE,0,0);
1269 cm->DefineProperty("CMAKE_<LANG>_CREATE_ASSEMBLY_SOURCE",
1270 cmProperty::VARIABLE,0,0);
1271 cm->DefineProperty("CMAKE_<LANG>_CREATE_PREPROCESSED_SOURCE",
1272 cmProperty::VARIABLE,0,0);
1273 cm->DefineProperty("CMAKE_<LANG>_FLAGS",
1274 cmProperty::VARIABLE,0,0);
1275 cm->DefineProperty("CMAKE_<LANG>_FLAGS_DEBUG_INIT",
1276 cmProperty::VARIABLE,0,0);
1277 cm->DefineProperty("CMAKE_<LANG>_FLAGS_INIT",
1278 cmProperty::VARIABLE,0,0);
1279 cm->DefineProperty("CMAKE_<LANG>_FLAGS_MINSIZEREL_INIT",
1280 cmProperty::VARIABLE,0,0);
1281 cm->DefineProperty("CMAKE_<LANG>_FLAGS_RELEASE_INIT",
1282 cmProperty::VARIABLE,0,0);
1283 cm->DefineProperty("CMAKE_<LANG>_FLAGS_RELWITHDEBINFO_INIT",
1284 cmProperty::VARIABLE,0,0);
1285 cm->DefineProperty("CMAKE_<LANG>_INFORMATION_LOADED",
1286 cmProperty::VARIABLE,0,0);
1287 cm->DefineProperty("CMAKE_<LANG>_LINK_EXECUTABLE",
1288 cmProperty::VARIABLE,0,0);
1289 cm->DefineProperty("CMAKE_<LANG>_LINK_FLAGS",
1290 cmProperty::VARIABLE,0,0);
1291 cm->DefineProperty("CMAKE_<LANG>_STANDARD_LIBRARIES",
1292 cmProperty::VARIABLE,0,0);
1293 cm->DefineProperty("CMAKE_<LANG>_STANDARD_LIBRARIES_INIT",
1294 cmProperty::VARIABLE,0,0);
1295 cm->DefineProperty("CMAKE_<LANG>_USE_RESPONSE_FILE_FOR_OBJECTS",
1296 cmProperty::VARIABLE,0,0);
1297 cm->DefineProperty("CMAKE_EXECUTABLE_SUFFIX_<LANG>",
1298 cmProperty::VARIABLE,0,0);
1299 cm->DefineProperty("CMAKE_EXE_LINK_DYNAMIC_<LANG>_FLAGS",
1300 cmProperty::VARIABLE,0,0);
1301 cm->DefineProperty("CMAKE_EXE_LINK_STATIC_<LANG>_FLAGS",
1302 cmProperty::VARIABLE,0,0);
1303 cm->DefineProperty("CMAKE_GENERATOR_<LANG>",
1304 cmProperty::VARIABLE,0,0);
1305 cm->DefineProperty("CMAKE_IMPORT_LIBRARY_PREFIX_<LANG>",
1306 cmProperty::VARIABLE,0,0);
1307 cm->DefineProperty("CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG>",
1308 cmProperty::VARIABLE,0,0);
1309 cm->DefineProperty("CMAKE_INCLUDE_FLAG_<LANG>",
1310 cmProperty::VARIABLE,0,0);
1311 cm->DefineProperty("CMAKE_INCLUDE_FLAG_SEP_<LANG>",
1312 cmProperty::VARIABLE,0,0);
1313 cm->DefineProperty("CMAKE_INCLUDE_SYSTEM_FLAG_<LANG>",
1314 cmProperty::VARIABLE,0,0);
1315 cm->DefineProperty("CMAKE_NEEDS_REQUIRES_STEP_<LANG>_FLAG",
1316 cmProperty::VARIABLE,0,0);
1317 cm->DefineProperty("CMAKE_SHARED_LIBRARY_CREATE_<LANG>_FLAGS",
1318 cmProperty::VARIABLE,0,0);
1319 cm->DefineProperty("CMAKE_SHARED_LIBRARY_<LANG>_FLAGS",
1320 cmProperty::VARIABLE,0,0);
1321 cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS",
1322 cmProperty::VARIABLE,0,0);
1323 cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_DYNAMIC_<LANG>_FLAGS",
1324 cmProperty::VARIABLE,0,0);
1325 cm->DefineProperty("CMAKE_SHARED_LIBRARY_LINK_STATIC_<LANG>_FLAGS",
1326 cmProperty::VARIABLE,0,0);
1327 cm->DefineProperty("CMAKE_SHARED_LIBRARY_PREFIX_<LANG>",
1328 cmProperty::VARIABLE,0,0);
1329 cm->DefineProperty("CMAKE_SHARED_LIBRARY_SUFFIX_<LANG>",
1330 cmProperty::VARIABLE,0,0);
1331 cm->DefineProperty("CMAKE_SHARED_LIBRARY_RUNTIME_<LANG>_FLAG",
1332 cmProperty::VARIABLE,0,0);
1333 cm->DefineProperty("CMAKE_SHARED_LIBRARY_RUNTIME_<LANG>_FLAG_SEP",
1334 cmProperty::VARIABLE,0,0);
1335 cm->DefineProperty("CMAKE_SHARED_LIBRARY_RPATH_LINK_<LANG>_FLAG",
1336 cmProperty::VARIABLE,0,0);
1337 cm->DefineProperty("CMAKE_EXECUTABLE_RUNTIME_<LANG>_FLAG",
1338 cmProperty::VARIABLE,0,0);
1339 cm->DefineProperty("CMAKE_EXECUTABLE_RUNTIME_<LANG>_FLAG_SEP",
1340 cmProperty::VARIABLE,0,0);
1341 cm->DefineProperty("CMAKE_EXECUTABLE_RPATH_LINK_<LANG>_FLAG",
1342 cmProperty::VARIABLE,0,0);
1343 cm->DefineProperty("CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH",
1344 cmProperty::VARIABLE,0,0);
1345 cm->DefineProperty("CMAKE_SHARED_MODULE_CREATE_<LANG>_FLAGS",
1346 cmProperty::VARIABLE,0,0);
1347 cm->DefineProperty("CMAKE_SHARED_MODULE_<LANG>_FLAGS",
1348 cmProperty::VARIABLE,0,0);
1349 cm->DefineProperty("CMAKE_SHARED_MODULE_LINK_DYNAMIC_<LANG>_FLAGS",
1350 cmProperty::VARIABLE,0,0);
1351 cm->DefineProperty("CMAKE_SHARED_MODULE_LINK_STATIC_<LANG>_FLAGS",
1352 cmProperty::VARIABLE,0,0);
1353 cm->DefineProperty("CMAKE_SHARED_MODULE_PREFIX_<LANG>",
1354 cmProperty::VARIABLE,0,0);
1355 cm->DefineProperty("CMAKE_SHARED_MODULE_SUFFIX_<LANG>",
1356 cmProperty::VARIABLE,0,0);
1357 cm->DefineProperty("CMAKE_SHARED_MODULE_RUNTIME_<LANG>_FLAG",
1358 cmProperty::VARIABLE,0,0);
1359 cm->DefineProperty("CMAKE_SHARED_MODULE_RUNTIME_<LANG>_FLAG_SEP",
1360 cmProperty::VARIABLE,0,0);
1361 cm->DefineProperty("CMAKE_STATIC_LIBRARY_PREFIX_<LANG>",
1362 cmProperty::VARIABLE,0,0);
1363 cm->DefineProperty("CMAKE_STATIC_LIBRARY_SUFFIX_<LANG>",
1364 cmProperty::VARIABLE,0,0);
1365 cm->DefineProperty("CMAKE_LINK_DEPENDENT_LIBRARY_FILES",
1366 cmProperty::VARIABLE,0,0);
1367 cm->DefineProperty("CMAKE_LINK_DEPENDENT_LIBRARY_DIRS",
1368 cmProperty::VARIABLE,0,0);