1CMAKE-VARIABLES(7)                   CMake                  CMAKE-VARIABLES(7)
2
3
4

NAME

6       cmake-variables - CMake Variables Reference
7

VARIABLES THAT PROVIDE INFORMATION

9   CMAKE_AR
10       Name of archiving tool for static libraries.
11
12       This  specifies  the name of the program that creates archive or static
13       libraries.
14
15   CMAKE_ARGC
16       Number of command line arguments passed to CMake in script mode.
17
18       When run in -P script mode, CMake sets this variable to the  number  of
19       command line arguments.  See also CMAKE_ARGV0, 1, 2 
20
21   CMAKE_ARGV0
22       Command line argument passed to CMake in script mode.
23
24       When  run in -P script mode, CMake sets this variable to the first com‐
25       mand line argument.  It then also sets CMAKE_ARGV1, CMAKE_ARGV2, …  and
26       so  on,  up  to  the  number of command line arguments given.  See also
27       CMAKE_ARGC.
28
29   CMAKE_BINARY_DIR
30       The path to the top level of the build tree.
31
32       This is the full path to the top level of the current CMake build tree.
33       For an in-source build, this would be the same as CMAKE_SOURCE_DIR.
34
35       When  run in -P script mode, CMake sets the variables CMAKE_BINARY_DIR,
36       CMAKE_SOURCE_DIR, CMAKE_CURRENT_BINARY_DIR and CMAKE_CURRENT_SOURCE_DIR
37       to the current working directory.
38
39   CMAKE_BUILD_TOOL
40       This variable exists only for backwards compatibility.  It contains the
41       same value as CMAKE_MAKE_PROGRAM.  Use that variable instead.
42
43   CMAKE_CACHEFILE_DIR
44       The directory with the CMakeCache.txt file.
45
46       This is the full path to the directory that has the CMakeCache.txt file
47       in it.  This is the same as CMAKE_BINARY_DIR.
48
49   CMAKE_CACHE_MAJOR_VERSION
50       Major version of CMake used to create the CMakeCache.txt file
51
52       This  stores  the  major  version  of CMake used to write a CMake cache
53       file.  It is only different when a different version of CMake is run on
54       a previously created cache file.
55
56   CMAKE_CACHE_MINOR_VERSION
57       Minor version of CMake used to create the CMakeCache.txt file
58
59       This  stores  the  minor  version  of CMake used to write a CMake cache
60       file.  It is only different when a different version of CMake is run on
61       a previously created cache file.
62
63   CMAKE_CACHE_PATCH_VERSION
64       Patch version of CMake used to create the CMakeCache.txt file
65
66       This  stores  the  patch  version  of CMake used to write a CMake cache
67       file.  It is only different when a different version of CMake is run on
68       a previously created cache file.
69
70   CMAKE_CFG_INTDIR
71       Build-time reference to per-configuration output subdirectory.
72
73       For  native  build  systems  supporting  multiple configurations in the
74       build tree (such as Visual Studio Generators and Xcode), the value is a
75       reference  to a build-time variable specifying the name of the per-con‐
76       figuration output subdirectory.  On Makefile Generators this  evaluates
77       to  . because there is only one configuration in a build tree.  Example
78       values:
79
80          $(ConfigurationName) = Visual Studio 8, 9
81          $(Configuration)     = Visual Studio 10
82          $(CONFIGURATION)     = Xcode
83          .                    = Make-based tools
84
85       Since these values are evaluated by the native build system, this vari‐
86       able  is  suitable only for use in command lines that will be evaluated
87       at build time.  Example of intended usage:
88
89          add_executable(mytool mytool.c)
90          add_custom_command(
91            OUTPUT out.txt
92            COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool
93                    ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt
94            DEPENDS mytool in.txt
95            )
96          add_custom_target(drive ALL DEPENDS out.txt)
97
98       Note that CMAKE_CFG_INTDIR is no longer necessary for this purpose  but
99       has  been  left  for  compatibility  with  existing  projects.  Instead
100       add_custom_command() recognizes executable target names in its  COMMAND
101       option,  so  ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool can
102       be replaced by just mytool.
103
104       This variable is read-only.  Setting  it  is  undefined  behavior.   In
105       multi-configuration  build systems the value of this variable is passed
106       as the value of preprocessor symbol CMAKE_INTDIR to the compilation  of
107       all source files.
108
109   CMAKE_COMMAND
110       The full path to the cmake(1) executable.
111
112       This  is the full path to the CMake executable cmake(1) which is useful
113       from custom commands that want to use the cmake -E option for  portable
114       system commands.  (e.g.  /usr/local/bin/cmake)
115
116   CMAKE_CROSSCOMPILING
117       Intended to indicate whether CMake is cross compiling, but note limita‐
118       tions discussed below.
119
120       This variable will be set to true by  CMake  if  the  CMAKE_SYSTEM_NAME
121       variable  has been set manually (i.e. in a toolchain file or as a cache
122       entry from the cmake command line). In  most  cases,  manually  setting
123       CMAKE_SYSTEM_NAME will only be done when cross compiling, since it will
124       otherwise be given the same value as CMAKE_HOST_SYSTEM_NAME if not man‐
125       ually  set,  which  is correct for the non-cross-compiling case. In the
126       event that CMAKE_SYSTEM_NAME is manually  set  to  the  same  value  as
127       CMAKE_HOST_SYSTEM_NAME,  then CMAKE_CROSSCOMPILING will still be set to
128       true.
129
130       Another case to be aware of is that builds  targeting  Apple  platforms
131       other  than macOS are handled differently to other cross compiling sce‐
132       narios. Rather than relying on CMAKE_SYSTEM_NAME to select  the  target
133       platform,  Apple  device  builds  use  CMAKE_OSX_SYSROOT  to select the
134       appropriate SDK, which indirectly determines the target platform.  Fur‐
135       thermore, when using the Xcode generator, developers can switch between
136       device and simulator builds at build time rather than having  a  single
137       choice  at configure time, so the concept of whether the build is cross
138       compiling or not is more complex. Therefore, the use of CMAKE_CROSSCOM‐
139       PILING is not recommended for projects targeting Apple devices.
140
141   CMAKE_CROSSCOMPILING_EMULATOR
142       This  variable  is only used when CMAKE_CROSSCOMPILING is on. It should
143       point to a command on the host system that can run executable built for
144       the target system.
145
146       The  command will be used to run try_run() generated executables, which
147       avoids manual population of the TryRunResults.cmake file.
148
149       It is also used as the default value  for  the  CROSSCOMPILING_EMULATOR
150       target property of executables.
151
152   CMAKE_CTEST_COMMAND
153       Full path to ctest(1) command installed with CMake.
154
155       This  is the full path to the CTest executable ctest(1) which is useful
156       from custom commands that want to use the cmake(1) -E option for porta‐
157       ble system commands.
158
159   CMAKE_CURRENT_BINARY_DIR
160       The path to the binary directory currently being processed.
161
162       This  the full path to the build directory that is currently being pro‐
163       cessed by cmake.  Each directory added by add_subdirectory() will  cre‐
164       ate  a binary directory in the build tree, and as it is being processed
165       this variable will be set.  For in-source builds this  is  the  current
166       source directory being processed.
167
168       When  run in -P script mode, CMake sets the variables CMAKE_BINARY_DIR,
169       CMAKE_SOURCE_DIR, CMAKE_CURRENT_BINARY_DIR and CMAKE_CURRENT_SOURCE_DIR
170       to the current working directory.
171
172   CMAKE_CURRENT_LIST_DIR
173       Full directory of the listfile currently being processed.
174
175       As  CMake  processes  the  listfiles in your project this variable will
176       always be set to the directory where the listfile  which  is  currently
177       being  processed  (CMAKE_CURRENT_LIST_FILE)  is located.  The value has
178       dynamic scope.  When CMake starts processing commands in a source  file
179       it  sets  this  variable  to  the directory where this file is located.
180       When CMake finishes processing commands from the file it  restores  the
181       previous  value.  Therefore the value of the variable inside a macro or
182       function is the directory of the file invoking the bottom-most entry on
183       the  call  stack, not the directory of the file containing the macro or
184       function definition.
185
186       See also CMAKE_CURRENT_LIST_FILE.
187
188   CMAKE_CURRENT_LIST_FILE
189       Full path to the listfile currently being processed.
190
191       As CMake processes the listfiles in your  project  this  variable  will
192       always  be  set  to  the  one currently being processed.  The value has
193       dynamic scope.  When CMake starts processing commands in a source  file
194       it sets this variable to the location of the file.  When CMake finishes
195       processing commands from the  file  it  restores  the  previous  value.
196       Therefore  the  value of the variable inside a macro or function is the
197       file invoking the bottom-most entry on the call  stack,  not  the  file
198       containing the macro or function definition.
199
200       See also CMAKE_PARENT_LIST_FILE.
201
202   CMAKE_CURRENT_LIST_LINE
203       The line number of the current file being processed.
204
205       This is the line number of the file currently being processed by cmake.
206
207   CMAKE_CURRENT_SOURCE_DIR
208       The path to the source directory currently being processed.
209
210       This the full path to the source directory that is currently being pro‐
211       cessed by cmake.
212
213       When run in -P script mode, CMake sets the variables  CMAKE_BINARY_DIR,
214       CMAKE_SOURCE_DIR, CMAKE_CURRENT_BINARY_DIR and CMAKE_CURRENT_SOURCE_DIR
215       to the current working directory.
216
217   CMAKE_DIRECTORY_LABELS
218       Specify labels for the current directory.
219
220       This is used to initialize the LABELS directory property.
221
222   CMAKE_DL_LIBS
223       Name of library containing dlopen and dlclose.
224
225       The name of the library that has dlopen and dlclose in it, usually -ldl
226       on most UNIX machines.
227
228   CMAKE_EDIT_COMMAND
229       Full path to cmake-gui(1) or ccmake(1).  Defined only for Makefile Gen‐
230       erators when not using an “extra” generator for an IDE.
231
232       This is the full path to the CMake executable that can graphically edit
233       the cache.  For example, cmake-gui(1) or ccmake(1).
234
235   CMAKE_EXECUTABLE_SUFFIX
236       The suffix for executables on this platform.
237
238       The suffix to use for the end of an executable filename if any, .exe on
239       Windows.
240
241       CMAKE_EXECUTABLE_SUFFIX_<LANG> overrides this for language <LANG>.
242
243   CMAKE_EXTRA_GENERATOR
244       The extra generator used  to  build  the  project.   See  cmake-genera‐
245       tors(7).
246
247       When  using  the Eclipse, CodeBlocks, CodeLite, Kate or Sublime genera‐
248       tors, CMake  generates  Makefiles  (CMAKE_GENERATOR)  and  additionally
249       project  files for the respective IDE.  This IDE project file generator
250       is stored in CMAKE_EXTRA_GENERATOR (e.g.  Eclipse CDT4).
251
252   CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
253       Additional suffixes for shared libraries.
254
255       Extensions  for  shared  libraries  other  than   that   specified   by
256       CMAKE_SHARED_LIBRARY_SUFFIX,  if  any.   CMake  uses  this to recognize
257       external shared library files during analysis of libraries linked by  a
258       target.
259
260   CMAKE_FIND_PACKAGE_NAME
261       Defined  by  the  find_package() command while loading a find module to
262       record the caller-specified package name.   See  command  documentation
263       for details.
264
265   CMAKE_FIND_PACKAGE_SORT_DIRECTION
266       The  sorting  direction  used by CMAKE_FIND_PACKAGE_SORT_ORDER.  It can
267       assume one of the following values:
268
269       DEC    Default.  Ordering is done  in  descending  mode.   The  highest
270              folder found will be tested first.
271
272       ASC    Ordering  is  done  in  ascending mode.  The lowest folder found
273              will be tested first.
274
275       If CMAKE_FIND_PACKAGE_SORT_ORDER is not set or  is  set  to  NONE  this
276       variable has no effect.
277
278   CMAKE_FIND_PACKAGE_SORT_ORDER
279       The  default order for sorting packages found using find_package().  It
280       can assume one of the following values:
281
282       NONE   Default.  No attempt is done to sort packages.  The first  valid
283              package found will be selected.
284
285       NAME   Sort packages lexicographically before selecting one.
286
287       NATURAL
288              Sort  packages  using  natural order (see strverscmp(3) manual),
289              i.e. such that contiguous digits are compared as whole numbers.
290
291       Natural sorting can be employed to return the highest version when mul‐
292       tiple  versions  of  the same library are found by find_package().  For
293       example suppose that the following libraries have been found:
294
295       · libX-1.1.0
296
297       · libX-1.2.9
298
299       · libX-1.2.10
300
301       By setting NATURAL order we can select the one with the highest version
302       number libX-1.2.10.
303
304          set(CMAKE_FIND_PACKAGE_SORT_ORDER NATURAL)
305          find_package(libX CONFIG)
306
307       The  sort  direction  can  be  controlled  using  the  CMAKE_FIND_PACK‐
308       AGE_SORT_DIRECTION variable (by default decrescent, e.g. lib-B will  be
309       tested before lib-A).
310
311   CMAKE_GENERATOR
312       The generator used to build the project.  See cmake-generators(7).
313
314       The  name  of  the  generator  that is being used to generate the build
315       files.  (e.g.  Unix Makefiles, Ninja, etc.)
316
317   CMAKE_GENERATOR_INSTANCE
318       Generator-specific instance specification provided by user.
319
320       Some CMake generators support selection of an instance  of  the  native
321       build system when multiple instances are available.  If the user speci‐
322       fies an instance (e.g. by setting this cache entry), or after a default
323       instance  is  chosen  when  a build tree is first configured, the value
324       will be available in this variable.
325
326       The value of this variable should never be modified by project code.  A
327       toolchain  file specified by the CMAKE_TOOLCHAIN_FILE variable may ini‐
328       tialize CMAKE_GENERATOR_INSTANCE as a cache entry.  Once a given  build
329       tree  has  been  initialized with a particular value for this variable,
330       changing the value has undefined behavior.
331
332       Instance specification is supported only on specific generators:
333
334       · For the Visual Studio 15 2017 generator (and  above)  this  specifies
335         the absolute path to the VS installation directory of the selected VS
336         instance.
337
338       See native build system documentation for allowed instance values.
339
340   CMAKE_GENERATOR_PLATFORM
341       Generator-specific target platform specification provided by user.
342
343       Some CMake generators support a target platform name to be given to the
344       native build system to choose a compiler toolchain.  If the user speci‐
345       fies a platform name (e.g. via the cmake(1) -A option) the  value  will
346       be available in this variable.
347
348       The value of this variable should never be modified by project code.  A
349       toolchain file specified by the CMAKE_TOOLCHAIN_FILE variable may  ini‐
350       tialize  CMAKE_GENERATOR_PLATFORM.   Once  a  given build tree has been
351       initialized with a particular value for  this  variable,  changing  the
352       value has undefined behavior.
353
354       Platform specification is supported only on specific generators:
355
356       · For  Visual  Studio  Generators with VS 2005 and above this specifies
357         the target architecture.
358
359       See native build system documentation for allowed platform names.
360
361   Visual Studio Platform Selection
362       On Visual Studio Generators the selected platform name is  provided  in
363       the CMAKE_VS_PLATFORM_NAME variable.
364
365   CMAKE_GENERATOR_TOOLSET
366       Native build system toolset specification provided by user.
367
368       Some  CMake  generators  support  a  toolset  specification to tell the
369       native build system how to choose a compiler.  If the user specifies  a
370       toolset  (e.g.  via the cmake(1) -T option) the value will be available
371       in this variable.
372
373       The value of this variable should never be modified by project code.  A
374       toolchain  file specified by the CMAKE_TOOLCHAIN_FILE variable may ini‐
375       tialize CMAKE_GENERATOR_TOOLSET.  Once a given build tree has been ini‐
376       tialized  with a particular value for this variable, changing the value
377       has undefined behavior.
378
379       Toolset specification is supported only on specific generators:
380
381       · Visual Studio Generators for VS 2010 and above
382
383       · The Xcode generator for Xcode 3.0 and above
384
385       See native build system documentation for allowed toolset names.
386
387   Visual Studio Toolset Selection
388       The Visual Studio Generators support toolset specification using one of
389       these forms:
390
391       · toolset
392
393       · toolset[,key=value]*
394
395       · key=value[,key=value]*
396
397       The  toolset  specifies the toolset name.  The selected toolset name is
398       provided in the CMAKE_VS_PLATFORM_TOOLSET variable.
399
400       The key=value pairs form a comma-separated list of options  to  specify
401       generator-specific  details  of the toolset selection.  Supported pairs
402       are:
403
404       cuda=<version>
405              Specify the CUDA toolkit version to use.  Supported by  VS  2010
406              and  above  with the CUDA toolkit VS integration installed.  See
407              the CMAKE_VS_PLATFORM_TOOLSET_CUDA variable.
408
409       host=x64
410              Request use of the native x64 toolchain on x64 hosts.  Supported
411              by    VS    2013    and    above.     See   the   CMAKE_VS_PLAT‐
412              FORM_TOOLSET_HOST_ARCHITECTURE variable.
413
414   CMAKE_HOME_DIRECTORY
415       Path to top of source tree.
416
417       This is the path to the top level of the source tree.
418
419   CMAKE_IMPORT_LIBRARY_PREFIX
420       The prefix for import libraries that you link to.
421
422       The prefix to use for the name of an import library  if  used  on  this
423       platform.
424
425       CMAKE_IMPORT_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>.
426
427   CMAKE_IMPORT_LIBRARY_SUFFIX
428       The suffix for import libraries that you link to.
429
430       The  suffix to use for the end of an import library filename if used on
431       this platform.
432
433       CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>.
434
435   CMAKE_JOB_POOL_COMPILE
436       This variable is used to initialize the  JOB_POOL_COMPILE  property  on
437       all the targets. See JOB_POOL_COMPILE for additional information.
438
439   CMAKE_JOB_POOL_LINK
440       This  variable  is used to initialize the JOB_POOL_LINK property on all
441       the targets. See JOB_POOL_LINK for additional information.
442
443   CMAKE_JOB_POOLS
444       If the JOB_POOLS global property is not set, the value of this variable
445       is used in its place.  See JOB_POOLS for additional information.
446
447   CMAKE_<LANG>_COMPILER_AR
448       A wrapper around ar adding the appropriate --plugin option for the com‐
449       piler.
450
451       See also CMAKE_AR.
452
453   CMAKE_<LANG>_COMPILER_RANLIB
454       A wrapper around ranlib adding the appropriate --plugin option for  the
455       compiler.
456
457       See also CMAKE_RANLIB.
458
459   CMAKE_LINK_LIBRARY_SUFFIX
460       The suffix for libraries that you link to.
461
462       The suffix to use for the end of a library filename, .lib on Windows.
463
464   CMAKE_LINK_SEARCH_END_STATIC
465       End a link line such that static system libraries are used.
466
467       Some  linkers support switches such as -Bstatic and -Bdynamic to deter‐
468       mine whether to use static  or  shared  libraries  for  -lXXX  options.
469       CMake  uses these options to set the link type for libraries whose full
470       paths are not known or (in some cases) are in implicit link directories
471       for  the  platform.   By default CMake adds an option at the end of the
472       library list (if necessary) to set the linker search type back  to  its
473       starting  type.  This property switches the final linker search type to
474       -Bstatic regardless of how it started.
475
476       This   variable   is   used   to   initialize   the   target   property
477       LINK_SEARCH_END_STATIC for all targets. If set, it’s value is also used
478       by the try_compile() command.
479
480       See also CMAKE_LINK_SEARCH_START_STATIC.
481
482   CMAKE_LINK_SEARCH_START_STATIC
483       Assume the linker looks for static libraries by default.
484
485       Some linkers support switches such as -Bstatic and -Bdynamic to  deter‐
486       mine  whether  to  use  static  or  shared libraries for -lXXX options.
487       CMake uses these options to set the link type for libraries whose  full
488       paths are not known or (in some cases) are in implicit link directories
489       for the platform.  By default the linker search type is assumed  to  be
490       -Bdynamic at the beginning of the library list.  This property switches
491       the assumption to -Bstatic.  It is intended for  use  when  linking  an
492       executable statically (e.g.  with the GNU -static option).
493
494       This   variable   is   used   to   initialize   the   target   property
495       LINK_SEARCH_START_STATIC for all targets.  If set, it’s value  is  also
496       used by the try_compile() command.
497
498       See also CMAKE_LINK_SEARCH_END_STATIC.
499
500   CMAKE_MAJOR_VERSION
501       First version number component of the CMAKE_VERSION variable.
502
503   CMAKE_MAKE_PROGRAM
504       Tool  that  can  launch  the native build system.  The value may be the
505       full path to an executable or just the tool name if it is  expected  to
506       be in the PATH.
507
508       The  tool selected depends on the CMAKE_GENERATOR used to configure the
509       project:
510
511       · The Makefile Generators set this to make, gmake, or a  generator-spe‐
512         cific tool (e.g. nmake for NMake Makefiles).
513
514         These  generators store CMAKE_MAKE_PROGRAM in the CMake cache so that
515         it may be edited by the user.
516
517       · The Ninja generator sets this to ninja.
518
519         This generator stores CMAKE_MAKE_PROGRAM in the CMake cache  so  that
520         it may be edited by the user.
521
522       · The Xcode generator sets this to xcodebuild (or possibly an otherwise
523         undocumented cmakexbuild wrapper implementing some workarounds).
524
525         This generator prefers to lookup the build tool at build time  rather
526         than  to  store  CMAKE_MAKE_PROGRAM in the CMake cache ahead of time.
527         This is because xcodebuild is easy to find, the  cmakexbuild  wrapper
528         is  needed only for older Xcode versions, and the path to cmakexbuild
529         may be outdated if CMake itself moves.
530
531         For compatibility with versions of CMake prior to 3.2, if a  user  or
532         project  explicitly  adds  CMAKE_MAKE_PROGRAM to the CMake cache then
533         CMake will use the specified value.
534
535       · The Visual Studio Generators set this to the full path to MSBuild.exe
536         (VS >= 10), devenv.com (VS 7,8,9), or VCExpress.exe (VS Express 8,9).
537         (See also variables CMAKE_VS_MSBUILD_COMMAND and CMAKE_VS_DEVENV_COM‐
538         MAND.
539
540         These generators prefer to lookup the build tool at build time rather
541         than to store CMAKE_MAKE_PROGRAM in the CMake cache  ahead  of  time.
542         This  is  because  the  tools are version-specific and can be located
543         using the Windows Registry.  It is also necessary because the  proper
544         build  tool may depend on the project content (e.g. the Intel Fortran
545         plugin to VS 10 and 11  requires  devenv.com  to  build  its  .vfproj
546         project  files  even though MSBuild.exe is normally preferred to sup‐
547         port the CMAKE_GENERATOR_TOOLSET).
548
549         For compatibility with versions of CMake prior to 3.0, if a  user  or
550         project  explicitly  adds  CMAKE_MAKE_PROGRAM to the CMake cache then
551         CMake will use the specified value if possible.
552
553       · The Green Hills MULTI generator sets this to gbuild.  If  a  user  or
554         project  explicitly  adds  CMAKE_MAKE_PROGRAM to the CMake cache then
555         CMake will use the specified value.
556
557       The CMAKE_MAKE_PROGRAM variable is set for use by  project  code.   The
558       value   is   also   used   by   the   cmake(1)   --build  and  ctest(1)
559       --build-and-test tools to launch the native build process.
560
561   CMAKE_MATCH_COUNT
562       The number of matches with the last regular expression.
563
564       When a regular expression match is used, CMake fills in CMAKE_MATCH_<n>
565       variables  with  the  match  contents.   The CMAKE_MATCH_COUNT variable
566       holds the number of match expressions when these are filled.
567
568   CMAKE_MATCH_<n>
569       Capture group <n> matched by the last regular expression, for groups  0
570       through  9.   Group  0 is the entire match.  Groups 1 through 9 are the
571       subexpressions captured by () syntax.
572
573       When a regular expression match is used, CMake fills in CMAKE_MATCH_<n>
574       variables  with  the  match  contents.   The CMAKE_MATCH_COUNT variable
575       holds the number of match expressions when these are filled.
576
577   CMAKE_MINIMUM_REQUIRED_VERSION
578       Version specified to cmake_minimum_required() command
579
580       Variable containing the VERSION component specified in the  cmake_mini‐
581       mum_required() command.
582
583   CMAKE_MINOR_VERSION
584       Second version number component of the CMAKE_VERSION variable.
585
586   CMAKE_NETRC
587       This variable is used to initialize the NETRC option for file(DOWNLOAD)
588       and file(UPLOAD) commands and the  module  ExternalProject.  See  those
589       commands for additional information.
590
591       The local option takes precedence over this variable.
592
593   CMAKE_NETRC_FILE
594       This   variable  is  used  to  initialize  the  NETRC_FILE  option  for
595       file(DOWNLOAD) and file(UPLOAD) commands and  the  module  ExternalPro‐
596       ject. See those commands for additional information.
597
598       The local option takes precedence over this variable.
599
600   CMAKE_PARENT_LIST_FILE
601       Full path to the CMake file that included the current one.
602
603       While  processing  a  CMake  file loaded by include() or find_package()
604       this variable contains the full path to the file including it.  The top
605       of  the  include  stack  is  always  the CMakeLists.txt for the current
606       directory.  See also CMAKE_CURRENT_LIST_FILE.
607
608   CMAKE_PATCH_VERSION
609       Third version number component of the CMAKE_VERSION variable.
610
611   CMAKE_PROJECT_DESCRIPTION
612       The description of the current project.
613
614       This specifies description of the  current  project  from  the  closest
615       inherited project() command.
616
617   CMAKE_PROJECT_NAME
618       The name of the current project.
619
620       This  specifies  name of the current project from the closest inherited
621       project() command.
622
623   CMAKE_RANLIB
624       Name of randomizing tool for static libraries.
625
626       This specifies name of the program that randomizes libraries  on  UNIX,
627       not used on Windows, but may be present.
628
629   CMAKE_ROOT
630       Install directory for running cmake.
631
632       This  is  the install root for the running CMake and the Modules direc‐
633       tory can be  found  here.   This  is  commonly  used  in  this  format:
634       ${CMAKE_ROOT}/Modules
635
636   CMAKE_SCRIPT_MODE_FILE
637       Full path to the cmake(1) -P script file currently being processed.
638
639       When  run  in  cmake(1) -P script mode, CMake sets this variable to the
640       full path of the script file.  When run to configure  a  CMakeLists.txt
641       file, this variable is not set.
642
643   CMAKE_SHARED_LIBRARY_PREFIX
644       The prefix for shared libraries that you link to.
645
646       The prefix to use for the name of a shared library, lib on UNIX.
647
648       CMAKE_SHARED_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>.
649
650   CMAKE_SHARED_LIBRARY_SUFFIX
651       The suffix for shared libraries that you link to.
652
653       The  suffix  to  use  for the end of a shared library filename, .dll on
654       Windows.
655
656       CMAKE_SHARED_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>.
657
658   CMAKE_SHARED_MODULE_PREFIX
659       The prefix for loadable modules that you link to.
660
661       The prefix to use for the name of a loadable module on this platform.
662
663       CMAKE_SHARED_MODULE_PREFIX_<LANG> overrides this for language <LANG>.
664
665   CMAKE_SHARED_MODULE_SUFFIX
666       The suffix for shared libraries that you link to.
667
668       The suffix to use for the end of a loadable  module  filename  on  this
669       platform
670
671       CMAKE_SHARED_MODULE_SUFFIX_<LANG> overrides this for language <LANG>.
672
673   CMAKE_SIZEOF_VOID_P
674       Size of a void pointer.
675
676       This  is  set  to  the  size of a pointer on the target machine, and is
677       determined by a try compile.  If a  64-bit  size  is  found,  then  the
678       library search path is modified to look for 64-bit libraries first.
679
680   CMAKE_SKIP_INSTALL_RULES
681       Whether to disable generation of installation rules.
682
683       If TRUE, cmake will neither generate installaton rules nor will it gen‐
684       erate cmake_install.cmake files. This variable is FALSE by default.
685
686   CMAKE_SKIP_RPATH
687       If true, do not add run time path information.
688
689       If this is set to TRUE, then the rpath information is not added to com‐
690       piled  executables.   The  default  is  to add rpath information if the
691       platform supports it.  This allows for  easy  running  from  the  build
692       tree.   To  omit RPATH in the install step, but not the build step, use
693       CMAKE_SKIP_INSTALL_RPATH instead.
694
695   CMAKE_SOURCE_DIR
696       The path to the top level of the source tree.
697
698       This is the full path to the top level  of  the  current  CMake  source
699       tree.    For   an   in-source   build,   this  would  be  the  same  as
700       CMAKE_BINARY_DIR.
701
702       When run in -P script mode, CMake sets the variables  CMAKE_BINARY_DIR,
703       CMAKE_SOURCE_DIR, CMAKE_CURRENT_BINARY_DIR and CMAKE_CURRENT_SOURCE_DIR
704       to the current working directory.
705
706   CMAKE_STATIC_LIBRARY_PREFIX
707       The prefix for static libraries that you link to.
708
709       The prefix to use for the name of a static library, lib on UNIX.
710
711       CMAKE_STATIC_LIBRARY_PREFIX_<LANG> overrides this for language <LANG>.
712
713   CMAKE_STATIC_LIBRARY_SUFFIX
714       The suffix for static libraries that you link to.
715
716       The suffix to use for the end of a static  library  filename,  .lib  on
717       Windows.
718
719       CMAKE_STATIC_LIBRARY_SUFFIX_<LANG> overrides this for language <LANG>.
720
721   CMAKE_TOOLCHAIN_FILE
722       Path to toolchain file supplied to cmake(1).
723
724       This  variable  is  specified  on the command line when cross-compiling
725       with CMake.  It is the path to a file which is read early in the  CMake
726       run  and  which  specifies locations for compilers and toolchain utili‐
727       ties, and other target platform and compiler related information.
728
729   CMAKE_TWEAK_VERSION
730       Defined to 0 for compatibility with code written for older  CMake  ver‐
731       sions that may have defined higher values.
732
733       NOTE:
734          In  CMake  versions  2.8.2  through  2.8.12, this variable holds the
735          fourth version number component of the CMAKE_VERSION variable.
736
737   CMAKE_VERBOSE_MAKEFILE
738       Enable verbose output from Makefile builds.
739
740       This variable is a cache entry initialized (to FALSE) by the  project()
741       command.   Users may enable the option in their local build tree to get
742       more verbose output from Makefile builds and show each command line  as
743       it is launched.
744
745   CMAKE_VERSION
746       The CMake version string as three non-negative integer components sepa‐
747       rated by . and possibly followed by - and other information.  The first
748       two components represent the feature level and the third component rep‐
749       resents either a bug-fix level or development date.
750
751       Release versions and release candidate versions of CMake use  the  for‐
752       mat:
753
754          <major>.<minor>.<patch>[-rc<n>]
755
756       where  the  <patch>  component is less than 20000000.  Development ver‐
757       sions of CMake use the format:
758
759          <major>.<minor>.<date>[-<id>]
760
761       where the <date> component is of format CCYYMMDD and <id>  may  contain
762       arbitrary  text.   This  represents development as of a particular date
763       following the <major>.<minor> feature release.
764
765       Individual component values are also available in variables:
766
767       · CMAKE_MAJOR_VERSION
768
769       · CMAKE_MINOR_VERSION
770
771       · CMAKE_PATCH_VERSION
772
773       · CMAKE_TWEAK_VERSION
774
775       Use the if() command VERSION_LESS, VERSION_GREATER, VERSION_EQUAL, VER‐
776       SION_LESS_EQUAL,  or VERSION_GREATER_EQUAL operators to compare version
777       string values against CMAKE_VERSION using a component-wise test.   Ver‐
778       sion  component values may be 10 or larger so do not attempt to compare
779       version strings as floating-point numbers.
780
781       NOTE:
782          CMake versions 2.8.2 through 2.8.12 used three  components  for  the
783          feature  level.  Release versions represented the bug-fix level in a
784          fourth  component,  i.e.  <major>.<minor>.<patch>[.<tweak>][-rc<n>].
785          Development  versions represented the development date in the fourth
786          component, i.e. <major>.<minor>.<patch>.<date>[-<id>].
787
788          CMake versions prior to 2.8.2 used three components for the  feature
789          level  and  had  no  bug-fix  component.   Release  versions used an
790          even-valued            second            component,             i.e.
791          <major>.<even-minor>.<patch>[-rc<n>].   Development versions used an
792          odd-valued second component with the development date as  the  third
793          component, i.e. <major>.<odd-minor>.<date>.
794
795          The  CMAKE_VERSION  variable  is  defined by CMake 2.6.3 and higher.
796          Earlier versions defined only the individual component variables.
797
798   CMAKE_VS_DEVENV_COMMAND
799       The generators for Visual Studio 8 2005 and above set this variable  to
800       the  devenv.com  command installed with the corresponding Visual Studio
801       version.  Note that this variable may be empty on Visual Studio Express
802       editions because they do not provide this tool.
803
804       This  variable is not defined by other generators even if devenv.com is
805       installed on the computer.
806
807       The CMAKE_VS_MSBUILD_COMMAND is also provided for Visual Studio 10 2010
808       and above.  See also the CMAKE_MAKE_PROGRAM variable.
809
810   CMAKE_VS_INTEL_Fortran_PROJECT_VERSION
811       When generating for Visual Studio 8 2005 or greater with the Intel For‐
812       tran plugin installed, this specifies the .vfproj project  file  format
813       version.   This is intended for internal use by CMake and should not be
814       used by project code.
815
816   CMAKE_VS_MSBUILD_COMMAND
817       The generators for Visual Studio 10 2010 and above set this variable to
818       the  MSBuild.exe command installed with the corresponding Visual Studio
819       version.
820
821       This variable is not defined by other generators even if MSBuild.exe is
822       installed on the computer.
823
824       The  CMAKE_VS_DEVENV_COMMAND  is also provided for the non-Express edi‐
825       tions of Visual Studio.  See also the CMAKE_MAKE_PROGRAM variable.
826
827   CMAKE_VS_NsightTegra_VERSION
828       When using a Visual Studio generator with the  CMAKE_SYSTEM_NAME  vari‐
829       able  set  to Android, this variable contains the version number of the
830       installed NVIDIA Nsight Tegra Visual Studio Edition.
831
832   CMAKE_VS_PLATFORM_NAME
833       Visual Studio target platform name.
834
835       VS 8 and above allow project files to specify a target platform.  CMake
836       provides  the  name  of  the chosen platform in this variable.  See the
837       CMAKE_GENERATOR_PLATFORM variable for details.
838
839   CMAKE_VS_PLATFORM_TOOLSET
840       Visual Studio Platform Toolset name.
841
842       VS 10 and above use MSBuild under the hood and  support  multiple  com‐
843       piler toolchains.  CMake may specify a toolset explicitly, such as v110
844       for VS 11 or Windows7.1SDK for 64-bit support in VS 10 Express.   CMake
845       provides the name of the chosen toolset in this variable.
846
847       See the CMAKE_GENERATOR_TOOLSET variable for details.
848
849   CMAKE_VS_PLATFORM_TOOLSET_CUDA
850       NVIDIA CUDA Toolkit version whose Visual Studio toolset to use.
851
852       The Visual Studio Generators for VS 2010 and above support using a CUDA
853       toolset provided by a CUDA Toolkit.  The toolset version number may  be
854       specified  by  a field in CMAKE_GENERATOR_TOOLSET of the form cuda=8.0.
855       If none is specified CMake will choose a default version.   CMake  pro‐
856       vides  the  selected  CUDA toolset version in this variable.  The value
857       may be empty if no CUDA  Toolkit  with  Visual  Studio  integration  is
858       installed.
859
860   CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE
861       Visual Studio preferred tool architecture.
862
863       The  Visual  Studio  Generators  for VS 2013 and above support optional
864       selection of a  64-bit  toolchain  on  64-bit  hosts  by  specifying  a
865       host=x64  value  in the CMAKE_GENERATOR_TOOLSET option.  CMake provides
866       the selected toolchain architecture preference in this variable (either
867       x64 or empty).
868
869   CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
870       Visual Studio Windows Target Platform Version.
871
872       When  targeting  Windows 10 and above Visual Studio 2015 and above sup‐
873       port specification of a target Windows version to select a  correspond‐
874       ing  SDK.   The  CMAKE_SYSTEM_VERSION  variable may be set to specify a
875       version.  Otherwise CMake computes a default version based on the  Win‐
876       dows  SDK versions available.  The chosen Windows target version number
877       is provided in CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION.  If no Windows
878       10 SDK is available this value will be empty.
879
880       One  may  set  a  CMAKE_WINDOWS_KITS_10_DIR  environment variable to an
881       absolute path to tell CMake to look for Windows 10  SDKs  in  a  custom
882       location.    The   specified   directory   is   expected   to   contain
883       Include/10.0.* directories.
884
885   CMAKE_XCODE_GENERATE_SCHEME
886       If enabled, the Xcode generator will generate schema files.  Those  are
887       are  useful  to  invoke  analyze,  archive,  build-for-testing and test
888       actions from the command line.
889
890       NOTE:
891          The Xcode Schema Generator is  still  experimental  and  subject  to
892          change.
893
894   CMAKE_XCODE_PLATFORM_TOOLSET
895       Xcode compiler selection.
896
897       Xcode  supports  selection  of  a  compiler  from  one of the installed
898       toolsets.  CMake provides the name of the chosen toolset in this  vari‐
899       able, if any is explicitly selected (e.g.  via the cmake(1) -T option).
900
901   <PROJECT-NAME>_BINARY_DIR
902       Top level binary directory for the named project.
903
904       A  variable is created with the name used in the project() command, and
905       is the binary directory for the  project.   This  can  be  useful  when
906       add_subdirectory() is used to connect several projects.
907
908   <PROJECT-NAME>_SOURCE_DIR
909       Top level source directory for the named project.
910
911       A  variable is created with the name used in the project() command, and
912       is the source directory for the  project.   This  can  be  useful  when
913       add_subdirectory() is used to connect several projects.
914
915   <PROJECT-NAME>_VERSION
916       Value  given  to  the  VERSION  option  of  the most recent call to the
917       project() command with project name <PROJECT-NAME>, if any.
918
919       See  also  the  component-wise  version  variables  <PROJECT-NAME>_VER‐
920       SION_MAJOR, <PROJECT-NAME>_VERSION_MINOR, <PROJECT-NAME>_VERSION_PATCH,
921       and <PROJECT-NAME>_VERSION_TWEAK.
922
923   <PROJECT-NAME>_VERSION_MAJOR
924       First version number component of the  <PROJECT-NAME>_VERSION  variable
925       as set by the project() command.
926
927   <PROJECT-NAME>_VERSION_MINOR
928       Second  version number component of the <PROJECT-NAME>_VERSION variable
929       as set by the project() command.
930
931   <PROJECT-NAME>_VERSION_PATCH
932       Third version number component of the  <PROJECT-NAME>_VERSION  variable
933       as set by the project() command.
934
935   <PROJECT-NAME>_VERSION_TWEAK
936       Fourth  version number component of the <PROJECT-NAME>_VERSION variable
937       as set by the project() command.
938
939   PROJECT_BINARY_DIR
940       Full path to build directory for project.
941
942       This is the binary directory of the most recent project() command.
943
944   PROJECT_DESCRIPTION
945       Short project description given to the project command.
946
947       This is the description given to the most recent project() command.
948
949   PROJECT_NAME
950       Name of the project given to the project command.
951
952       This is the name given to the most recent project() command.
953
954   PROJECT_SOURCE_DIR
955       Top level source directory for the current project.
956
957       This is the source directory of the most recent project() command.
958
959   PROJECT_VERSION
960       Value given to the VERSION option  of  the  most  recent  call  to  the
961       project() command, if any.
962
963       See  also  the  component-wise version variables PROJECT_VERSION_MAJOR,
964       PROJECT_VERSION_MINOR,    PROJECT_VERSION_PATCH,    and    PROJECT_VER‐
965       SION_TWEAK.
966
967   PROJECT_VERSION_MAJOR
968       First  version  number component of the PROJECT_VERSION variable as set
969       by the project() command.
970
971   PROJECT_VERSION_MINOR
972       Second version number component of the PROJECT_VERSION variable as  set
973       by the project() command.
974
975   PROJECT_VERSION_PATCH
976       Third  version  number component of the PROJECT_VERSION variable as set
977       by the project() command.
978
979   PROJECT_VERSION_TWEAK
980       Fourth version number component of the PROJECT_VERSION variable as  set
981       by the project() command.
982

VARIABLES THAT CHANGE BEHAVIOR

984   BUILD_SHARED_LIBS
985       Global flag to cause add_library() to create shared libraries if on.
986
987       If  present  and true, this will cause all libraries to be built shared
988       unless the library was explicitly added  as  a  static  library.   This
989       variable is often added to projects as an option() so that each user of
990       a project can decide if they want to build the project using shared  or
991       static libraries.
992
993   CMAKE_ABSOLUTE_DESTINATION_FILES
994       List  of  files which have been installed using an ABSOLUTE DESTINATION
995       path.
996
997       This  variable  is  defined  by   CMake-generated   cmake_install.cmake
998       scripts.  It can be used (read-only) by programs or scripts that source
999       those install scripts.  This is used by  some  CPack  generators  (e.g.
1000       RPM).
1001
1002   CMAKE_APPBUNDLE_PATH
1003       ;-list  of  directories  specifying  a search path for OS X application
1004       bundles used by the find_program(), and find_package() commands.
1005
1006   CMAKE_AUTOMOC_RELAXED_MODE
1007       Switch between strict and relaxed automoc mode.
1008
1009       By default, AUTOMOC behaves exactly as described in  the  documentation
1010       of  the  AUTOMOC  target  property.   When set to TRUE, it accepts more
1011       input and tries to find the correct input file for moc even if it  dif‐
1012       fers  from the documented behaviour.  In this mode it e.g.  also checks
1013       whether a header file is  intended  to  be  processed  by  moc  when  a
1014       "foo.moc" file has been included.
1015
1016       Relaxed mode has to be enabled for KDE4 compatibility.
1017
1018   CMAKE_BACKWARDS_COMPATIBILITY
1019       Deprecated.  See CMake Policy CMP0001 documentation.
1020
1021   CMAKE_BUILD_TYPE
1022       Specifies the build type on single-configuration generators.
1023
1024       This statically specifies what build type (configuration) will be built
1025       in this build tree.  Possible values are empty,  Debug,  Release,  Rel‐
1026       WithDebInfo,  MinSizeRel,  …   This variable is only meaningful to sin‐
1027       gle-configuration generators (such as Makefile  Generators  and  Ninja)
1028       i.e.  those which choose a single configuration when CMake runs to gen‐
1029       erate a build tree as opposed to multi-configuration  generators  which
1030       offer  selection  of the build configuration within the generated build
1031       environment.  There are many per-config properties and variables  (usu‐
1032       ally  following  clean  SOME_VAR_<CONFIG>  order  conventions), such as
1033       CMAKE_C_FLAGS_<CONFIG>,         specified         as         uppercase:
1034       CMAKE_C_FLAGS_[DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL|...].  For exam‐
1035       ple, in a build tree configured to build type Debug, CMake will see  to
1036       having CMAKE_C_FLAGS_DEBUG settings get added to the CMAKE_C_FLAGS set‐
1037       tings.  See also CMAKE_CONFIGURATION_TYPES.
1038
1039   CMAKE_CODEBLOCKS_COMPILER_ID
1040       Change the compiler id in the generated CodeBlocks project files.
1041
1042       CodeBlocks  uses  its  own  compiler  id  string  which  differs   from
1043       CMAKE_<LANG>_COMPILER_ID.   If this variable is left empty, CMake tries
1044       to recognize the CodeBlocks compiler id automatically.   Otherwise  the
1045       specified string is used in the CodeBlocks project file.  See the Code‐
1046       Blocks documentation for valid compiler id strings.
1047
1048       Other IDEs like QtCreator that also use the  CodeBlocks  generator  may
1049       ignore this setting.
1050
1051   CMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES
1052       Change the way the CodeBlocks generator creates project files.
1053
1054       If  this  variable  evaluates  to  ON  the  generator excludes from the
1055       project file any files that are located outside the project root.
1056
1057   CMAKE_CODELITE_USE_TARGETS
1058       Change the way the CodeLite generator creates projectfiles.
1059
1060       If this variable evaluates to ON at the end  of  the  top-level  CMake‐
1061       Lists.txt  file,  the  generator  creates projectfiles based on targets
1062       rather than projects.
1063
1064   CMAKE_COLOR_MAKEFILE
1065       Enables color output when using the Makefile Generators.
1066
1067       When enabled, the generated  Makefiles  will  produce  colored  output.
1068       Default is ON.
1069
1070   CMAKE_CONFIGURATION_TYPES
1071       Specifies the available build types on multi-config generators.
1072
1073       This specifies what build types (configurations) will be available such
1074       as Debug, Release, RelWithDebInfo etc.  This has reasonable defaults on
1075       most  platforms, but can be extended to provide other build types.  See
1076       also CMAKE_BUILD_TYPE for details of managing configuration  data,  and
1077       CMAKE_CFG_INTDIR.
1078
1079   CMAKE_DEBUG_TARGET_PROPERTIES
1080       Enables tracing output for target properties.
1081
1082       This  variable  can  be populated with a list of properties to generate
1083       debug output for when evaluating target properties.  Currently  it  can
1084       only  be  used when evaluating the INCLUDE_DIRECTORIES, COMPILE_DEFINI‐
1085       TIONS,  COMPILE_OPTIONS,  AUTOUIC_OPTIONS,  SOURCES,  COMPILE_FEATURES,
1086       POSITION_INDEPENDENT_CODE  target  properties  and  any  other property
1087       listed in COMPATIBLE_INTERFACE_STRING and  other  COMPATIBLE_INTERFACE_
1088       properties.   It  outputs  an origin for each entry in the target prop‐
1089       erty.  Default is unset.
1090
1091   CMAKE_DEPENDS_IN_PROJECT_ONLY
1092       When set to TRUE in a directory, the build system produced by the Make‐
1093       file Generators is set up to only consider dependencies on source files
1094       that appear either in the source or in the binary directories.  Changes
1095       to source files outside of these directories will not cause rebuilds.
1096
1097       This  should  be  used  carefully  in cases where some source files are
1098       picked up through external headers during the build.
1099
1100   CMAKE_DISABLE_FIND_PACKAGE_<PackageName>
1101       Variable for disabling find_package() calls.
1102
1103       Every non-REQUIRED find_package() call in a project can be disabled  by
1104       setting  the variable CMAKE_DISABLE_FIND_PACKAGE_<PackageName> to TRUE.
1105       This can be used to  build  a  project  without  an  optional  package,
1106       although that package is installed.
1107
1108       This  switch should be used during the initial CMake run.  Otherwise if
1109       the package has already been found in a previous CMake run,  the  vari‐
1110       ables which have been stored in the cache will still be there.  In that
1111       case it is recommended to remove the cache variables for  this  package
1112       from the cache using the cache editor or cmake(1) -U
1113
1114   CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES
1115       This  cache  variable  is  used  by the Eclipse project generator.  See
1116       cmake-generators(7).
1117
1118       The Eclipse project generator generates so-called linked resources e.g.
1119       to  the  subproject root dirs in the source tree or to the source files
1120       of targets.  This can be disabled by setting this variable to FALSE.
1121
1122   CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT
1123       This cache variable is used by  the  Eclipse  project  generator.   See
1124       cmake-generators(7).
1125
1126       If  this  variable  is  set to TRUE, the Eclipse project generator will
1127       generate an Eclipse project in CMAKE_SOURCE_DIR . This project can then
1128       be  used  in  Eclipse  e.g.  for  the  version  control  functionality.
1129       CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT defaults to FALSE; so nothing  is
1130       written into the source directory.
1131
1132   CMAKE_ECLIPSE_MAKE_ARGUMENTS
1133       This  cache  variable  is  used  by the Eclipse project generator.  See
1134       cmake-generators(7).
1135
1136       This variable holds arguments which are used when Eclipse  invokes  the
1137       make  tool. By default it is initialized to hold flags to enable paral‐
1138       lel builds (using -j typically).
1139
1140   CMAKE_ECLIPSE_VERSION
1141       This cache variable is used by  the  Eclipse  project  generator.   See
1142       cmake-generators(7).
1143
1144       When  using  the  Eclipse  project  generator,  CMake tries to find the
1145       Eclipse executable and detect the version of it. Depending on the  ver‐
1146       sion  it finds, some features are enabled or disabled. If CMake doesn’t
1147       find Eclipse, it assumes the oldest supported version, Eclipse Callisto
1148       (3.2).
1149
1150   CMAKE_ERROR_DEPRECATED
1151       Whether to issue errors for deprecated functionality.
1152
1153       If  TRUE,  use of deprecated functionality will issue fatal errors.  If
1154       this variable is not set, CMake behaves as if it were set to FALSE.
1155
1156   CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
1157       Ask cmake_install.cmake script to error out as  soon  as  a  file  with
1158       absolute INSTALL DESTINATION is encountered.
1159
1160       The  fatal  error  is  emitted before the installation of the offending
1161       file  takes  place.   This  variable   is   used   by   CMake-generated
1162       cmake_install.cmake  scripts.   If  one  sets this variable to ON while
1163       running the script, it may get fatal error messages from the script.
1164
1165   CMAKE_EXPORT_COMPILE_COMMANDS
1166       Enable/Disable output of compile commands during generation.
1167
1168       If enabled, generates a compile_commands.json file containing the exact
1169       compiler   calls   for   all   translation  units  of  the  project  in
1170       machine-readable form.  The format of the JSON file looks like:
1171
1172          [
1173            {
1174              "directory": "/home/user/development/project",
1175              "command": "/usr/bin/c++ ... -c ../foo/foo.cc",
1176              "file": "../foo/foo.cc"
1177            },
1178
1179            ...
1180
1181            {
1182              "directory": "/home/user/development/project",
1183              "command": "/usr/bin/c++ ... -c ../foo/bar.cc",
1184              "file": "../foo/bar.cc"
1185            }
1186          ]
1187
1188       NOTE:
1189          This option is implemented  only  by  Makefile  Generators  and  the
1190          Ninja.  It is ignored on other generators.
1191
1192   CMAKE_EXPORT_NO_PACKAGE_REGISTRY
1193       Disable the export(PACKAGE) command.
1194
1195       In  some cases, for example for packaging and for system wide installa‐
1196       tions, it is not desirable to write the user package registry.  If  the
1197       CMAKE_EXPORT_NO_PACKAGE_REGISTRY  variable is enabled, the export(PACK‐
1198       AGE) command will do nothing.
1199
1200       See also Disabling the Package Registry.
1201
1202   CMAKE_FIND_APPBUNDLE
1203       This variable affects how find_* commands choose between OS X  Applica‐
1204       tion Bundles and unix-style package components.
1205
1206       On   Darwin  or  systems  supporting  OS  X  Application  Bundles,  the
1207       CMAKE_FIND_APPBUNDLE variable can be set to empty or one of the follow‐
1208       ing:
1209
1210       FIRST  Try  to find application bundles before standard programs.  This
1211              is the default on Darwin.
1212
1213       LAST   Try to find application bundles after standard programs.
1214
1215       ONLY   Only try to find application bundles.
1216
1217       NEVER  Never try to find application bundles.
1218
1219   CMAKE_FIND_FRAMEWORK
1220       This variable affects how find_* commands choose between  OS  X  Frame‐
1221       works and unix-style package components.
1222
1223       On  Darwin or systems supporting OS X Frameworks, the CMAKE_FIND_FRAME‐
1224       WORK variable can be set to empty or one of the following:
1225
1226       FIRST  Try to find frameworks before  standard  libraries  or  headers.
1227              This is the default on Darwin.
1228
1229       LAST   Try to find frameworks after standard libraries or headers.
1230
1231       ONLY   Only try to find frameworks.
1232
1233       NEVER  Never try to find frameworks.
1234
1235   CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX
1236       Specify  a  <suffix>  to tell the find_library() command to search in a
1237       lib<suffix> directory before each lib directory that would normally  be
1238       searched.
1239
1240       This overrides the behavior of related global properties:
1241
1242       · FIND_LIBRARY_USE_LIB32_PATHS
1243
1244       · FIND_LIBRARY_USE_LIB64_PATHS
1245
1246       · FIND_LIBRARY_USE_LIBX32_PATHS
1247
1248   CMAKE_FIND_LIBRARY_PREFIXES
1249       Prefixes to prepend when looking for libraries.
1250
1251       This  specifies  what  prefixes  to  add  to  library  names  when  the
1252       find_library() command looks for libraries.  On UNIX  systems  this  is
1253       typically lib, meaning that when trying to find the foo library it will
1254       look for libfoo.
1255
1256   CMAKE_FIND_LIBRARY_SUFFIXES
1257       Suffixes to append when looking for libraries.
1258
1259       This  specifies  what  suffixes  to  add  to  library  names  when  the
1260       find_library() command looks for libraries.  On Windows systems this is
1261       typically .lib and .dll, meaning that  when  trying  to  find  the  foo
1262       library it will look for foo.dll etc.
1263
1264   CMAKE_FIND_NO_INSTALL_PREFIX
1265       Exclude the values of the CMAKE_INSTALL_PREFIX and CMAKE_STAGING_PREFIX
1266       variables from CMAKE_SYSTEM_PREFIX_PATH.  CMake adds these project-des‐
1267       tination  prefixes  to  CMAKE_SYSTEM_PREFIX_PATH by default in order to
1268       support building a series of dependent  packages  and  installing  them
1269       into a common prefix.  Set CMAKE_FIND_NO_INSTALL_PREFIX to TRUE to sup‐
1270       press this behavior.
1271
1272       The CMAKE_SYSTEM_PREFIX_PATH is initialized on  the  first  call  to  a
1273       project()   or  enable_language()  command.   Therefore  one  must  set
1274       CMAKE_FIND_NO_INSTALL_PREFIX before this in order to  take  effect.   A
1275       user  may  set  the  variable  as  a cache entry on the command line to
1276       achieve this.
1277
1278       Note that the prefix(es) may still be searched for other reasons,  such
1279       as  being  the  same  prefix  as the CMake installation, or for being a
1280       built-in system prefix.
1281
1282   CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
1283       Skip User Package Registry in find_package() calls.
1284
1285       In some cases, for example to locate only system wide installations, it
1286       is  not  desirable  to use the User Package Registry when searching for
1287       packages. If  the  CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY  variable  is
1288       enabled,  all  the  find_package()  commands will skip the User Package
1289       Registry as if they  were  called  with  the  NO_CMAKE_PACKAGE_REGISTRY
1290       argument.
1291
1292       See also Disabling the Package Registry.
1293
1294   CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
1295       Skip System Package Registry in find_package() calls.
1296
1297       In  some  cases, it is not desirable to use the System Package Registry
1298       when        searching        for        packages.        If         the
1299       CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY  variable is enabled, all
1300       the find_package() commands will skip the System Package Registry as if
1301       they were called with the NO_CMAKE_SYSTEM_PACKAGE_REGISTRY argument.
1302
1303       See also Disabling the Package Registry.
1304
1305   CMAKE_FIND_PACKAGE_WARN_NO_MODULE
1306       Tell find_package() to warn if called without an explicit mode.
1307
1308       If  find_package()  is  called without an explicit mode option (MODULE,
1309       CONFIG, or NO_MODULE) and no Find<pkg>.cmake module  is  in  CMAKE_MOD‐
1310       ULE_PATH  then  CMake  implicitly  assumes  that  the caller intends to
1311       search for a package configuration file.  If no  package  configuration
1312       file  is found then the wording of the failure message must account for
1313       both the case that the package is really missing and the case that  the
1314       project  has  a bug and failed to provide the intended Find module.  If
1315       instead the caller specifies an explicit mode option then  the  failure
1316       message can be more specific.
1317
1318       Set CMAKE_FIND_PACKAGE_WARN_NO_MODULE to TRUE to tell find_package() to
1319       warn when it implicitly assumes Config  mode.   This  helps  developers
1320       enforce use of an explicit mode in all calls to find_package() within a
1321       project.
1322
1323   CMAKE_FIND_ROOT_PATH
1324       ;-list of root paths to search on the filesystem.
1325
1326       This variable is most useful when cross-compiling. CMake uses the paths
1327       in  this  list  as  alternative  roots  to  find  filesystem items with
1328       find_package(), find_library() etc.
1329
1330   CMAKE_FIND_ROOT_PATH_MODE_INCLUDE
1331       This variable controls whether the CMAKE_FIND_ROOT_PATH and  CMAKE_SYS‐
1332       ROOT are used by find_file() and find_path().
1333
1334       If  set  to  ONLY,  then only the roots in CMAKE_FIND_ROOT_PATH will be
1335       searched. If set to NEVER, then the roots in CMAKE_FIND_ROOT_PATH  will
1336       be  ignored and only the host system root will be used. If set to BOTH,
1337       then the host system paths and the paths in  CMAKE_FIND_ROOT_PATH  will
1338       be searched.
1339
1340   CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
1341       This  variable controls whether the CMAKE_FIND_ROOT_PATH and CMAKE_SYS‐
1342       ROOT are used by find_library().
1343
1344       If set to ONLY, then only the roots  in  CMAKE_FIND_ROOT_PATH  will  be
1345       searched.  If set to NEVER, then the roots in CMAKE_FIND_ROOT_PATH will
1346       be ignored and only the host system root will be used. If set to  BOTH,
1347       then  the  host system paths and the paths in CMAKE_FIND_ROOT_PATH will
1348       be searched.
1349
1350   CMAKE_FIND_ROOT_PATH_MODE_PACKAGE
1351       This variable controls whether the CMAKE_FIND_ROOT_PATH and  CMAKE_SYS‐
1352       ROOT are used by find_package().
1353
1354       If  set  to  ONLY,  then only the roots in CMAKE_FIND_ROOT_PATH will be
1355       searched. If set to NEVER, then the roots in CMAKE_FIND_ROOT_PATH  will
1356       be  ignored and only the host system root will be used. If set to BOTH,
1357       then the host system paths and the paths in  CMAKE_FIND_ROOT_PATH  will
1358       be searched.
1359
1360   CMAKE_FIND_ROOT_PATH_MODE_PROGRAM
1361       This  variable controls whether the CMAKE_FIND_ROOT_PATH and CMAKE_SYS‐
1362       ROOT are used by find_program().
1363
1364       If set to ONLY, then only the roots  in  CMAKE_FIND_ROOT_PATH  will  be
1365       searched.  If set to NEVER, then the roots in CMAKE_FIND_ROOT_PATH will
1366       be ignored and only the host system root will be used. If set to  BOTH,
1367       then  the  host system paths and the paths in CMAKE_FIND_ROOT_PATH will
1368       be searched.
1369
1370   CMAKE_FRAMEWORK_PATH
1371       ;-list of directories specifying a search path for OS X frameworks used
1372       by  the  find_library(),  find_package(),  find_path(), and find_file()
1373       commands.
1374
1375   CMAKE_IGNORE_PATH
1376       ;-list  of  directories  to   be   ignored   by   the   find_program(),
1377       find_library(),  find_file(), and find_path() commands.  This is useful
1378       in cross-compiling environments where some system  directories  contain
1379       incompatible   but   possibly  linkable  libraries.   For  example,  on
1380       cross-compiled cluster environments,  this  allows  a  user  to  ignore
1381       directories containing libraries meant for the front-end machine.
1382
1383       By  default  this  is  empty;  it is intended to be set by the project.
1384       Note that CMAKE_IGNORE_PATH takes a list of directory names, not a list
1385       of prefixes.  To ignore paths under prefixes (bin, include, lib, etc.),
1386       specify them explicitly.
1387
1388       See also the CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_INCLUDE_PATH,
1389       and CMAKE_PROGRAM_PATH variables.
1390
1391   CMAKE_INCLUDE_DIRECTORIES_BEFORE
1392       Whether to append or prepend directories by default in include_directo‐
1393       ries().
1394
1395       This variable affects the default behavior of the include_directories()
1396       command.  Setting this variable to ON is equivalent to using the BEFORE
1397       option in all uses of that command.
1398
1399   CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE
1400       Whether to force prepending of project include directories.
1401
1402       This variable affects the order of  include  directories  generated  in
1403       compiler  command  lines.  If set to ON, it causes the CMAKE_SOURCE_DIR
1404       and the CMAKE_BINARY_DIR to appear first.
1405
1406   CMAKE_INCLUDE_PATH
1407       ;-list of directories specifying a search path for the find_file()  and
1408       find_path() commands.  By default it is empty, it is intended to be set
1409       by the project.   See  also  CMAKE_SYSTEM_INCLUDE_PATH  and  CMAKE_PRE‐
1410       FIX_PATH.
1411
1412   CMAKE_INSTALL_DEFAULT_COMPONENT_NAME
1413       Default component used in install() commands.
1414
1415       If  an  install() command is used without the COMPONENT argument, these
1416       files will be grouped into a  default  component.   The  name  of  this
1417       default  install  component  will  be  taken  from  this  variable.  It
1418       defaults to Unspecified.
1419
1420   CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
1421       Default permissions for directories created implicitly during installa‐
1422       tion of files by install() and file(INSTALL).
1423
1424       If  make install is invoked and directories are implicitly created they
1425       get  permissions  set  by   CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
1426       variable  or  platform  specific default permissions if the variable is
1427       not set.
1428
1429       Implicitly created directories are created if they are  not  explicitly
1430       installed  by  install()  command but are needed to install a file on a
1431       certain path. Example of such locations are directories created due  to
1432       the setting of CMAKE_INSTALL_PREFIX.
1433
1434       Expected  content  of  the  CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
1435       variable is a list of permissions that can be used by install() command
1436       PERMISSIONS section.
1437
1438       Example usage:
1439
1440          set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
1441               OWNER_READ
1442               OWNER_WRITE
1443               OWNER_EXECUTE
1444               GROUP_READ
1445             )
1446
1447   CMAKE_INSTALL_MESSAGE
1448       Specify   verbosity  of  installation  script  code  generated  by  the
1449       install() command (using the file(INSTALL) command).   For  paths  that
1450       are newly installed or updated, installation may print lines like:
1451
1452          -- Installing: /some/destination/path
1453
1454       For  paths  that  are  already up to date, installation may print lines
1455       like:
1456
1457          -- Up-to-date: /some/destination/path
1458
1459       The CMAKE_INSTALL_MESSAGE variable may be set to control which messages
1460       are printed:
1461
1462       ALWAYS Print both Installing and Up-to-date messages.
1463
1464       LAZY   Print Installing but not Up-to-date messages.
1465
1466       NEVER  Print neither Installing nor Up-to-date messages.
1467
1468       Other values have undefined behavior and may not be diagnosed.
1469
1470       If this variable is not set, the default behavior is ALWAYS.
1471
1472   CMAKE_INSTALL_PREFIX
1473       Install directory used by install().
1474
1475       If  make  install  is  invoked  or  INSTALL is built, this directory is
1476       prepended onto all install  directories.   This  variable  defaults  to
1477       /usr/local  on  UNIX  and  c:/Program Files/${PROJECT_NAME} on Windows.
1478       See CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT for how a project might
1479       choose its own default.
1480
1481       On  UNIX  one  can  use  the DESTDIR mechanism in order to relocate the
1482       whole installation.  DESTDIR means DESTination DIRectory.  It  is  com‐
1483       monly   used  by  makefile  users  in  order  to  install  software  at
1484       non-default location.  It is usually invoked like this:
1485
1486          make DESTDIR=/home/john install
1487
1488       which will install the concerned software using the  installation  pre‐
1489       fix,  e.g.   /usr/local  prepended with the DESTDIR value which finally
1490       gives /home/john/usr/local.
1491
1492       WARNING: DESTDIR may not be used on Windows because installation prefix
1493       usually  contains  a drive letter like in C:/Program Files which cannot
1494       be prepended with some other prefix.
1495
1496       The installation prefix is also added  to  CMAKE_SYSTEM_PREFIX_PATH  so
1497       that  find_package(),  find_program(), find_library(), find_path(), and
1498       find_file() will search the prefix for other software.
1499
1500       NOTE:
1501          Use the GNUInstallDirs module to provide GNU-style options  for  the
1502          layout of directories within the installation.
1503
1504   CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT
1505       CMake  sets this variable to a TRUE value when the CMAKE_INSTALL_PREFIX
1506       has just been initialized to its default value, typically on the  first
1507       run of CMake within a new build tree.  This can be used by project code
1508       to change the default without overriding a user-provided value:
1509
1510          if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
1511            set(CMAKE_INSTALL_PREFIX "/my/default" CACHE PATH "..." FORCE)
1512          endif()
1513
1514   CMAKE_LIBRARY_PATH
1515       ;-list of directories specifying a search path for  the  find_library()
1516       command.   By  default  it  is  empty,  it is intended to be set by the
1517       project.  See also CMAKE_SYSTEM_LIBRARY_PATH and CMAKE_PREFIX_PATH.
1518
1519   CMAKE_MFC_FLAG
1520       Tell cmake to use MFC for an executable or dll.
1521
1522       This can be set in a CMakeLists.txt file and will  enable  MFC  in  the
1523       application.   It  should be set to 1 for the static MFC library, and 2
1524       for the shared MFC library.  This is  used  in  Visual  Studio  project
1525       files.   The  CMakeSetup  dialog  used MFC and the CMakeLists.txt looks
1526       like this:
1527
1528          add_definitions(-D_AFXDLL)
1529          set(CMAKE_MFC_FLAG 2)
1530          add_executable(CMakeSetup WIN32 ${SRCS})
1531
1532   CMAKE_MODULE_PATH
1533       ;-list of directories specifying a search path for CMake modules to  be
1534       loaded  by the the include() or find_package() commands before checking
1535       the default modules that come with CMake.  By default it is  empty,  it
1536       is intended to be set by the project.
1537
1538   CMAKE_NOT_USING_CONFIG_FLAGS
1539       Skip _BUILD_TYPE flags if true.
1540
1541       This  is an internal flag used by the generators in CMake to tell CMake
1542       to skip the _BUILD_TYPE flags.
1543
1544   CMAKE_POLICY_DEFAULT_CMP<NNNN>
1545       Default for CMake Policy CMP<NNNN> when it is otherwise left unset.
1546
1547       Commands cmake_minimum_required(VERSION) and  cmake_policy(VERSION)  by
1548       default  leave  policies introduced after the given version unset.  Set
1549       CMAKE_POLICY_DEFAULT_CMP<NNNN> to OLD or NEW to specify the default for
1550       policy CMP<NNNN>, where <NNNN> is the policy number.
1551
1552       This  variable  should  not  be  set  by  a  project in CMake code; use
1553       cmake_policy(SET) instead.  Users running CMake may set  this  variable
1554       in the cache (e.g. -DCMAKE_POLICY_DEFAULT_CMP<NNNN>=<OLD|NEW>) to set a
1555       policy not otherwise set by the project.  Set to OLD to quiet a  policy
1556       warning  while using old behavior or to NEW to try building the project
1557       with new behavior.
1558
1559   CMAKE_POLICY_WARNING_CMP<NNNN>
1560       Explicitly enable or disable the warning when CMake Policy CMP<NNNN> is
1561       not set.  This is meaningful only for the few policies that do not warn
1562       by default:
1563
1564       · CMAKE_POLICY_WARNING_CMP0025 controls the warning for policy CMP0025.
1565
1566       · CMAKE_POLICY_WARNING_CMP0047 controls the warning for policy CMP0047.
1567
1568       · CMAKE_POLICY_WARNING_CMP0056 controls the warning for policy CMP0056.
1569
1570       · CMAKE_POLICY_WARNING_CMP0060 controls the warning for policy CMP0060.
1571
1572       · CMAKE_POLICY_WARNING_CMP0065 controls the warning for policy CMP0065.
1573
1574       · CMAKE_POLICY_WARNING_CMP0066 controls the warning for policy CMP0066.
1575
1576       · CMAKE_POLICY_WARNING_CMP0067 controls the warning for policy CMP0067.
1577
1578       This variable should not be set by a project in  CMake  code.   Project
1579       developers running CMake may set this variable in their cache to enable
1580       the warning (e.g. -DCMAKE_POLICY_WARNING_CMP<NNNN>=ON).  Alternatively,
1581       running  cmake(1)  with  the --debug-output, --trace, or --trace-expand
1582       option will also enable the warning.
1583
1584   CMAKE_PREFIX_PATH
1585       ;-list of directories specifying installation prefixes to  be  searched
1586       by the find_package(), find_program(), find_library(), find_file(), and
1587       find_path() commands.  Each command will add appropriate subdirectories
1588       (like bin, lib, or include) as specified in its own documentation.
1589
1590       By default this is empty.  It is intended to be set by the project.
1591
1592       See       also       CMAKE_SYSTEM_PREFIX_PATH,      CMAKE_INCLUDE_PATH,
1593       CMAKE_LIBRARY_PATH, CMAKE_PROGRAM_PATH, and CMAKE_IGNORE_PATH.
1594
1595   CMAKE_PROGRAM_PATH
1596       ;-list of directories specifying a search path for  the  find_program()
1597       command.   By  default  it  is  empty,  it is intended to be set by the
1598       project.  See also CMAKE_SYSTEM_PROGRAM_PATH and CMAKE_PREFIX_PATH.
1599
1600   CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE
1601       A CMake language file or module to be included by  the  project()  com‐
1602       mand.   This  is intended for injecting custom code into project builds
1603       without modifying their source.
1604
1605   CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
1606       Don’t make the install target depend on the all target.
1607
1608       By default, the install target depends on the all target.  This has the
1609       effect,  that  when  make install is invoked or INSTALL is built, first
1610       the  all  target  is  built,  then   the   installation   starts.    If
1611       CMAKE_SKIP_INSTALL_ALL_DEPENDENCY  is  set  to TRUE, this dependency is
1612       not created, so the installation process will start immediately,  inde‐
1613       pendent from whether the project has been completely built or not.
1614
1615   CMAKE_STAGING_PREFIX
1616       This  variable may be set to a path to install to when cross-compiling.
1617       This can be useful if the path in CMAKE_SYSROOT is read-only, or other‐
1618       wise should remain pristine.
1619
1620       The  CMAKE_STAGING_PREFIX  location  is also used as a search prefix by
1621       the  find_*  commands.  This  can  be   controlled   by   setting   the
1622       CMAKE_FIND_NO_INSTALL_PREFIX variable.
1623
1624       If   any  RPATH/RUNPATH  entries  passed  to  the  linker  contain  the
1625       CMAKE_STAGING_PREFIX, the matching path fragments are replaced with the
1626       CMAKE_INSTALL_PREFIX.
1627
1628   CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
1629       This  variable contains a list of env vars as a list of tokens with the
1630       syntax var=value.
1631
1632       Example:
1633
1634          set(CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
1635             "FOO=FOO1\;FOO2\;FOON"
1636             "BAR=BAR1\;BAR2\;BARN"
1637             "BAZ=BAZ1\;BAZ2\;BAZN"
1638             "FOOBAR=FOOBAR1\;FOOBAR2\;FOOBARN"
1639             "VALID="
1640             )
1641
1642       In case of malformed variables CMake will fail:
1643
1644          set(CMAKE_SUBLIME_TEXT_2_ENV_SETTINGS
1645              "THIS_IS_NOT_VALID"
1646              )
1647
1648   CMAKE_SUBLIME_TEXT_2_EXCLUDE_BUILD_TREE
1649       If this variable evaluates to ON at the end  of  the  top-level  CMake‐
1650       Lists.txt  file,  the Sublime Text 2 extra generator excludes the build
1651       tree from the .sublime-project if it is inside the source tree.
1652
1653   CMAKE_SYSROOT
1654       Path to pass to the compiler in the --sysroot flag.
1655
1656       The CMAKE_SYSROOT content is passed to the compiler  in  the  --sysroot
1657       flag,  if  supported.  The path is also stripped from the RPATH/RUNPATH
1658       if necessary on installation.  The CMAKE_SYSROOT is also used to prefix
1659       paths searched by the find_* commands.
1660
1661       This  variable  may  only  be  set in a toolchain file specified by the
1662       CMAKE_TOOLCHAIN_FILE variable.
1663
1664       See also the CMAKE_SYSROOT_COMPILE and CMAKE_SYSROOT_LINK variables.
1665
1666   CMAKE_SYSROOT_COMPILE
1667       Path to pass to the compiler  in  the  --sysroot  flag  when  compiling
1668       source  files.   This is the same as CMAKE_SYSROOT but is used only for
1669       compiling sources and not linking.
1670
1671       This variable may only be set in a  toolchain  file  specified  by  the
1672       CMAKE_TOOLCHAIN_FILE variable.
1673
1674   CMAKE_SYSROOT_LINK
1675       Path  to pass to the compiler in the --sysroot flag when linking.  This
1676       is the same as CMAKE_SYSROOT but is used only for linking and not  com‐
1677       piling sources.
1678
1679       This  variable  may  only  be  set in a toolchain file specified by the
1680       CMAKE_TOOLCHAIN_FILE variable.
1681
1682   CMAKE_SYSTEM_APPBUNDLE_PATH
1683       Search path for OS X application bundles used  by  the  find_program(),
1684       and  find_package()  commands.   By  default  it  contains the standard
1685       directories for the current system.  It is not intended to be  modified
1686       by the project, use CMAKE_APPBUNDLE_PATH for this.
1687
1688   CMAKE_SYSTEM_FRAMEWORK_PATH
1689       Search  path for OS X frameworks used by the find_library(), find_pack‐
1690       age(), find_path(), and find_file() commands.  By default  it  contains
1691       the standard directories for the current system.  It is not intended to
1692       be modified by the project, use CMAKE_FRAMEWORK_PATH for this.
1693
1694   CMAKE_SYSTEM_IGNORE_PATH
1695       ;-list  of  directories  to   be   ignored   by   the   find_program(),
1696       find_library(),  find_file(), and find_path() commands.  This is useful
1697       in cross-compiling environments where some system  directories  contain
1698       incompatible   but   possibly  linkable  libraries.   For  example,  on
1699       cross-compiled cluster environments,  this  allows  a  user  to  ignore
1700       directories containing libraries meant for the front-end machine.
1701
1702       By  default this contains a list of directories containing incompatible
1703       binaries for the host system.  See the CMAKE_IGNORE_PATH variable  that
1704       is intended to be set by the project.
1705
1706       See   also   the  CMAKE_SYSTEM_PREFIX_PATH,  CMAKE_SYSTEM_LIBRARY_PATH,
1707       CMAKE_SYSTEM_INCLUDE_PATH, and CMAKE_SYSTEM_PROGRAM_PATH variables.
1708
1709   CMAKE_SYSTEM_INCLUDE_PATH
1710       ;-list of directories specifying a search path for the find_file()  and
1711       find_path()  commands.   By default this contains the standard directo‐
1712       ries for the current system.  It is not intended to be modified by  the
1713       project;  use  CMAKE_INCLUDE_PATH for this.  See also CMAKE_SYSTEM_PRE‐
1714       FIX_PATH.
1715
1716   CMAKE_SYSTEM_LIBRARY_PATH
1717       ;-list of directories specifying a search path for  the  find_library()
1718       command.   By  default  this  contains the standard directories for the
1719       current system.  It is not intended to be modified by the project;  use
1720       CMAKE_LIBRARY_PATH for this.  See also CMAKE_SYSTEM_PREFIX_PATH.
1721
1722   CMAKE_SYSTEM_PREFIX_PATH
1723       ;-list  of  directories specifying installation prefixes to be searched
1724       by the find_package(), find_program(), find_library(), find_file(), and
1725       find_path() commands.  Each command will add appropriate subdirectories
1726       (like bin, lib, or include) as specified in its own documentation.
1727
1728       By default this contains the standard directories for the current  sys‐
1729       tem,  the  CMAKE_INSTALL_PREFIX,  and  the  CMAKE_STAGING_PREFIX.   The
1730       installation and staging  prefixes  may  be  excluded  by  setting  the
1731       CMAKE_FIND_NO_INSTALL_PREFIX variable.
1732
1733       CMAKE_SYSTEM_PREFIX_PATH is not intended to be modified by the project;
1734       use CMAKE_PREFIX_PATH for this.
1735
1736       See    also    CMAKE_SYSTEM_INCLUDE_PATH,    CMAKE_SYSTEM_LIBRARY_PATH,
1737       CMAKE_SYSTEM_PROGRAM_PATH, and CMAKE_SYSTEM_IGNORE_PATH.
1738
1739   CMAKE_SYSTEM_PROGRAM_PATH
1740       ;-list  of  directories specifying a search path for the find_program()
1741       command.  By default this contains the  standard  directories  for  the
1742       current  system.  It is not intended to be modified by the project; use
1743       CMAKE_PROGRAM_PATH for this.  See also CMAKE_SYSTEM_PREFIX_PATH.
1744
1745   CMAKE_USER_MAKE_RULES_OVERRIDE
1746       Specify a CMake file that overrides platform information.
1747
1748       CMake loads the specified file while enabling support for each language
1749       from  either the project() or enable_language() commands.  It is loaded
1750       after CMake’s builtin compiler and platform  information  modules  have
1751       been loaded but before the information is used.  The file may set plat‐
1752       form information variables to override CMake’s defaults.
1753
1754       This feature is intended for use only in overriding  information  vari‐
1755       ables  that  must  be set before CMake builds its first test project to
1756       check that the compiler for a language works.  It should not be used to
1757       load a file in cases that a normal include() will work.  Use it only as
1758       a last resort for behavior that cannot be achieved any other way.   For
1759       example,  one  may  set  the  CMAKE_C_FLAGS_INIT variable to change the
1760       default value used to initialize the CMAKE_C_FLAGS variable  before  it
1761       is  cached.   The override file should NOT be used to set anything that
1762       could be set after  languages  are  enabled,  such  as  variables  like
1763       CMAKE_RUNTIME_OUTPUT_DIRECTORY  that  affect the placement of binaries.
1764       Information set  in  the  file  will  be  used  for  try_compile()  and
1765       try_run() builds too.
1766
1767   CMAKE_WARN_DEPRECATED
1768       Whether to issue warnings for deprecated functionality.
1769
1770       If  not FALSE, use of deprecated functionality will issue warnings.  If
1771       this variable is not set, CMake behaves as if it were set to TRUE.
1772
1773       When running cmake(1), this option can be enabled with the -Wdeprecated
1774       option, or disabled with the -Wno-deprecated option.
1775
1776   CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
1777       Ask  cmake_install.cmake  script to warn each time a file with absolute
1778       INSTALL DESTINATION is encountered.
1779
1780       This variable is used by CMake-generated  cmake_install.cmake  scripts.
1781       If  one  sets  this variable to ON while running the script, it may get
1782       warning messages from the script.
1783
1784   CMAKE_XCODE_GENERATE_TOP_LEVEL_PROJECT_ONLY
1785       If enabled, the Xcode generator  will  generate  only  a  single  Xcode
1786       project  file  for  the topmost project() command instead of generating
1787       one for every project() command.
1788
1789       This could be useful to speed up the CMake generation  step  for  large
1790       projects and to work-around a bug in the ZERO_CHECK logic.
1791

VARIABLES THAT DESCRIBE THE SYSTEM

1793   ANDROID
1794       Set to 1 when the target system (CMAKE_SYSTEM_NAME) is Android.
1795
1796   APPLE
1797       Set  to  True  when the target system is an Apple platform (macOS, iOS,
1798       tvOS or watchOS).
1799
1800   BORLAND
1801       True if the Borland compiler is being used.
1802
1803       This is set to true if the Borland compiler is being used.
1804
1805   CMAKE_CL_64
1806       Discouraged.  Use CMAKE_SIZEOF_VOID_P instead.
1807
1808       Set to a true value when using a Microsoft Visual  Studio  cl  compiler
1809       that targets a 64-bit architecture.
1810
1811   CMAKE_COMPILER_2005
1812       Using the Visual Studio 2005 compiler from Microsoft
1813
1814       Set to true when using the Visual Studio 2005 compiler from Microsoft.
1815
1816   CMAKE_HOST_APPLE
1817       True for Apple OS X operating systems.
1818
1819       Set to true when the host system is Apple OS X.
1820
1821   CMAKE_HOST_SOLARIS
1822       True for Oracle Solaris operating systems.
1823
1824       Set to true when the host system is Oracle Solaris.
1825
1826   CMAKE_HOST_SYSTEM
1827       Composit Name of OS CMake is being run on.
1828
1829       This   variable   is   the   composite  of  CMAKE_HOST_SYSTEM_NAME  and
1830       CMAKE_HOST_SYSTEM_VERSION,           e.g.             ${CMAKE_HOST_SYS‐
1831       TEM_NAME}-${CMAKE_HOST_SYSTEM_VERSION}.   If  CMAKE_HOST_SYSTEM_VERSION
1832       is not set, then this variable is the same as CMAKE_HOST_SYSTEM_NAME.
1833
1834   CMAKE_HOST_SYSTEM_NAME
1835       Name of the OS CMake is running on.
1836
1837       On systems that have the uname command, this variable  is  set  to  the
1838       output of uname -s.  Linux, Windows, and Darwin for OS X are the values
1839       found on the big three operating systems.
1840
1841   CMAKE_HOST_SYSTEM_PROCESSOR
1842       The name of the CPU CMake is running on.
1843
1844       On systems that support uname, this variable is set to  the  output  of
1845       uname  -p.   On Windows it is set to the value of the environment vari‐
1846       able PROCESSOR_ARCHITECTURE.
1847
1848   CMAKE_HOST_SYSTEM_VERSION
1849       The OS version CMake is running on.
1850
1851       A numeric version string for  the  system.   On  systems  that  support
1852       uname, this variable is set to the output of uname -r. On other systems
1853       this is set to major-minor version numbers.
1854
1855   CMAKE_HOST_UNIX
1856       True for UNIX and UNIX like operating systems.
1857
1858       Set to true when the host system is UNIX or UNIX like (i.e.  APPLE  and
1859       CYGWIN).
1860
1861   CMAKE_HOST_WIN32
1862       True  if  the  host system is running Windows, including Windows 64-bit
1863       and MSYS.
1864
1865       Set to false on Cygwin.
1866
1867   CMAKE_LIBRARY_ARCHITECTURE
1868       Target architecture library directory name, if detected.
1869
1870       This is the value of CMAKE_<LANG>_LIBRARY_ARCHITECTURE as detected  for
1871       one of the enabled languages.
1872
1873   CMAKE_LIBRARY_ARCHITECTURE_REGEX
1874       Regex matching possible target architecture library directory names.
1875
1876       This  is  used  to  detect  CMAKE_<LANG>_LIBRARY_ARCHITECTURE  from the
1877       implicit linker search path by matching the <arch> name.
1878
1879   CMAKE_OBJECT_PATH_MAX
1880       Maximum object file full-path length allowed by native build tools.
1881
1882       CMake computes for every source file an object file name that is unique
1883       to  the  source file and deterministic with respect to the full path to
1884       the source file.  This allows multiple source  files  in  a  target  to
1885       share  the  same  name  if  they  lie  in different directories without
1886       rebuilding when one is added or removed.  However, it can produce  long
1887       full  paths  in a few cases, so CMake shortens the path using a hashing
1888       scheme when the full path to an object file exceeds a limit.  CMake has
1889       a built-in limit for each platform that is sufficient for common tools,
1890       but some native tools may have a lower limit.  This variable may be set
1891       to  specify the limit explicitly.  The value must be an integer no less
1892       than 128.
1893
1894   CMAKE_SYSTEM
1895       Composite name of operating system CMake is compiling for.
1896
1897       This variable is the  composite  of  CMAKE_SYSTEM_NAME  and  CMAKE_SYS‐
1898       TEM_VERSION,  e.g.   ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_VERSION}.   If
1899       CMAKE_SYSTEM_VERSION is not set, then this  variable  is  the  same  as
1900       CMAKE_SYSTEM_NAME.
1901
1902   CMAKE_SYSTEM_NAME
1903       The  name of the operating system for which CMake is to build.  See the
1904       CMAKE_SYSTEM_VERSION variable for the OS version.
1905
1906       Note that CMAKE_SYSTEM_NAME is not set to anything by default when run‐
1907       ning in script mode, since it’s not building anything.
1908
1909   System Name for Host Builds
1910       CMAKE_SYSTEM_NAME   is  by  default  set  to  the  same  value  as  the
1911       CMAKE_HOST_SYSTEM_NAME variable so that the build targets the host sys‐
1912       tem.
1913
1914   System Name for Cross Compiling
1915       CMAKE_SYSTEM_NAME  may  be  set explicitly when first configuring a new
1916       build tree in order to  enable  cross  compiling.   In  this  case  the
1917       CMAKE_SYSTEM_VERSION variable must also be set explicitly.
1918
1919   CMAKE_SYSTEM_PROCESSOR
1920       The name of the CPU CMake is building for.
1921
1922       This  variable  is the same as CMAKE_HOST_SYSTEM_PROCESSOR if you build
1923       for the host system instead of the target system when cross compiling.
1924
1925       · The Green Hills MULTI generator sets this to ARM by default.
1926
1927   CMAKE_SYSTEM_VERSION
1928       The version of the operating system for which CMake is to  build.   See
1929       the CMAKE_SYSTEM_NAME variable for the OS name.
1930
1931   System Version for Host Builds
1932       When  the  CMAKE_SYSTEM_NAME  variable  takes  its  default  value then
1933       CMAKE_SYSTEM_VERSION is by  default  set  to  the  same  value  as  the
1934       CMAKE_HOST_SYSTEM_VERSION  variable  so that the build targets the host
1935       system version.
1936
1937       In the case of a  host  build  then  CMAKE_SYSTEM_VERSION  may  be  set
1938       explicitly  when  first configuring a new build tree in order to enable
1939       targeting the build for a different version of the host operating  sys‐
1940       tem than is actually running on the host.  This is allowed and not con‐
1941       sidered cross compiling so long as the binaries built for the specified
1942       OS version can still run on the host.
1943
1944   System Version for Cross Compiling
1945       When  the  CMAKE_SYSTEM_NAME variable is set explicitly to enable cross
1946       compiling then the value  of  CMAKE_SYSTEM_VERSION  must  also  be  set
1947       explicitly to specify the target system version.
1948
1949   CYGWIN
1950       True for Cygwin.
1951
1952       Set to true when using Cygwin.
1953
1954   ENV
1955       Access environment variables.
1956
1957       Use  the  syntax  $ENV{VAR} to read environment variable VAR.  See also
1958       the set() command to set ENV{VAR}.
1959
1960   GHS-MULTI
1961       True when using Green Hills MULTI
1962
1963   MINGW
1964       True when using MinGW
1965
1966       Set to true when the compiler is some version of MinGW.
1967
1968   MSVC
1969       Set to true when the compiler is some version of Microsoft  Visual  C++
1970       or  another  compiler  simulating  Visual  C++.   Any compiler defining
1971       _MSC_VER is considered simulating Visual C++.
1972
1973       See also the MSVC_VERSION variable.
1974
1975   MSVC10
1976       Discouraged.  Use the MSVC_VERSION variable instead.
1977
1978       True when using the Microsoft Visual Studio v100  toolset  (cl  version
1979       16) or another compiler that simulates it.
1980
1981   MSVC11
1982       Discouraged.  Use the MSVC_VERSION variable instead.
1983
1984       True  when  using  the Microsoft Visual Studio v110 toolset (cl version
1985       17) or another compiler that simulates it.
1986
1987   MSVC12
1988       Discouraged.  Use the MSVC_VERSION variable instead.
1989
1990       True when using the Microsoft Visual Studio v120  toolset  (cl  version
1991       18) or another compiler that simulates it.
1992
1993   MSVC14
1994       Discouraged.  Use the MSVC_VERSION variable instead.
1995
1996       True  when  using  the Microsoft Visual Studio v140 or v141 toolset (cl
1997       version 19) or another compiler that simulates it.
1998
1999   MSVC60
2000       Discouraged.  Use the MSVC_VERSION variable instead.
2001
2002       True when using Microsoft Visual C++ 6.0.
2003
2004       Set to true when the compiler is version 6.0 of Microsoft Visual C++.
2005
2006   MSVC70
2007       Discouraged.  Use the MSVC_VERSION variable instead.
2008
2009       True when using Microsoft Visual C++ 7.0.
2010
2011       Set to true when the compiler is version 7.0 of Microsoft Visual C++.
2012
2013   MSVC71
2014       Discouraged.  Use the MSVC_VERSION variable instead.
2015
2016       True when using Microsoft Visual C++ 7.1.
2017
2018       Set to true when the compiler is version 7.1 of Microsoft Visual C++.
2019
2020   MSVC80
2021       Discouraged.  Use the MSVC_VERSION variable instead.
2022
2023       True when using the Microsoft Visual Studio v80 toolset (cl version 14)
2024       or another compiler that simulates it.
2025
2026   MSVC90
2027       Discouraged.  Use the MSVC_VERSION variable instead.
2028
2029       True when using the Microsoft Visual Studio v90 toolset (cl version 15)
2030       or another compiler that simulates it.
2031
2032   MSVC_IDE
2033       True when using the Microsoft Visual C++ IDE.
2034
2035       Set to true when the target platform is the Microsoft Visual  C++  IDE,
2036       as opposed to the command line compiler.
2037
2038   MSVC_VERSION
2039       The version of Microsoft Visual C/C++ being used if any.  If a compiler
2040       simulating Visual C++ is being  used,  this  variable  is  set  to  the
2041       toolset version simulated as given by the _MSC_VER preprocessor defini‐
2042       tion.
2043
2044       Known version numbers are:
2045
2046          1200      = VS  6.0
2047          1300      = VS  7.0
2048          1310      = VS  7.1
2049          1400      = VS  8.0 (v80 toolset)
2050          1500      = VS  9.0 (v90 toolset)
2051          1600      = VS 10.0 (v100 toolset)
2052          1700      = VS 11.0 (v110 toolset)
2053          1800      = VS 12.0 (v120 toolset)
2054          1900      = VS 14.0 (v140 toolset)
2055          1910-1919 = VS 15.0 (v141 toolset)
2056
2057       See also the  CMAKE_<LANG>_COMPILER_VERSION variable.
2058
2059   UNIX
2060       Set to True when the target system is UNIX or UNIX-like (e.g. APPLE and
2061       CYGWIN).   The  CMAKE_SYSTEM_NAME  variable should be queried if a more
2062       specific understanding of the target system is required.
2063
2064   WIN32
2065       Set to True when the target system is Windows, including Win64.
2066
2067   WINCE
2068       True when the CMAKE_SYSTEM_NAME variable is set to WindowsCE.
2069
2070   WINDOWS_PHONE
2071       True when the CMAKE_SYSTEM_NAME variable is set to WindowsPhone.
2072
2073   WINDOWS_STORE
2074       True when the CMAKE_SYSTEM_NAME variable is set to WindowsStore.
2075
2076   XCODE
2077       True when using Xcode generator.
2078
2079   XCODE_VERSION
2080       Version of Xcode (Xcode generator only).
2081
2082       Under the Xcode generator, this is the version of Xcode as specified in
2083       Xcode.app/Contents/version.plist (such as 3.1.2).
2084

VARIABLES THAT CONTROL THE BUILD

2086   CMAKE_ANDROID_ANT_ADDITIONAL_OPTIONS
2087       Default  value  for the ANDROID_ANT_ADDITIONAL_OPTIONS target property.
2088       See that target property for additional information.
2089
2090   CMAKE_ANDROID_API
2091       When Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio
2092       Edition,  this variable may be set to specify the default value for the
2093       ANDROID_API target property.  See that target property  for  additional
2094       information.
2095
2096       Otherwise, when Cross Compiling for Android, this variable provides the
2097       Android API version number targeted.  This will be the  same  value  as
2098       the CMAKE_SYSTEM_VERSION variable for Android platforms.
2099
2100   CMAKE_ANDROID_API_MIN
2101       Default value for the ANDROID_API_MIN target property.  See that target
2102       property for additional information.
2103
2104   CMAKE_ANDROID_ARCH
2105       When Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio
2106       Edition,  this variable may be set to specify the default value for the
2107       ANDROID_ARCH target property.  See that target property for  additional
2108       information.
2109
2110       Otherwise, when Cross Compiling for Android, this variable provides the
2111       name of the Android architecture corresponding  to  the  value  of  the
2112       CMAKE_ANDROID_ARCH_ABI variable.  The architecture name may be one of:
2113
2114       · arm
2115
2116       · arm64
2117
2118       · mips
2119
2120       · mips64
2121
2122       · x86
2123
2124       · x86_64
2125
2126   CMAKE_ANDROID_ARCH_ABI
2127       When  Cross  Compiling  for Android, this variable specifies the target
2128       architecture and ABI to be used.  Valid values are:
2129
2130       · arm64-v8a
2131
2132       · armeabi-v7a
2133
2134       · armeabi-v6
2135
2136       · armeabi
2137
2138       · mips
2139
2140       · mips64
2141
2142       · x86
2143
2144       · x86_64
2145
2146       See also the CMAKE_ANDROID_ARM_MODE  and  CMAKE_ANDROID_ARM_NEON  vari‐
2147       ables.
2148
2149   CMAKE_ANDROID_ARM_MODE
2150       When  Cross  Compiling for Android and CMAKE_ANDROID_ARCH_ABI is set to
2151       one of the armeabi architectures, set CMAKE_ANDROID_ARM_MODE to  ON  to
2152       target  32-bit  ARM  processors  (-marm).  Otherwise, the default is to
2153       target the 16-bit Thumb processors (-mthumb).
2154
2155   CMAKE_ANDROID_ARM_NEON
2156       When Cross Compiling for Android and CMAKE_ANDROID_ARCH_ABI is  set  to
2157       armeabi-v7a  set  CMAKE_ANDROID_ARM_NEON  to  ON  to  target  ARM  NEON
2158       devices.
2159
2160   CMAKE_ANDROID_ASSETS_DIRECTORIES
2161       Default value for the ANDROID_ASSETS_DIRECTORIES target property.   See
2162       that target property for additional information.
2163
2164   CMAKE_ANDROID_GUI
2165       Default  value for the ANDROID_GUI target property of executables.  See
2166       that target property for additional information.
2167
2168   CMAKE_ANDROID_JAR_DEPENDENCIES
2169       Default value for the ANDROID_JAR_DEPENDENCIES  target  property.   See
2170       that target property for additional information.
2171
2172   CMAKE_ANDROID_JAR_DIRECTORIES
2173       Default  value  for  the  ANDROID_JAR_DIRECTORIES target property.  See
2174       that target property for additional information.
2175
2176   CMAKE_ANDROID_JAVA_SOURCE_DIR
2177       Default value for the  ANDROID_JAVA_SOURCE_DIR  target  property.   See
2178       that target property for additional information.
2179
2180   CMAKE_ANDROID_NATIVE_LIB_DEPENDENCIES
2181       Default  value for the ANDROID_NATIVE_LIB_DEPENDENCIES target property.
2182       See that target property for additional information.
2183
2184   CMAKE_ANDROID_NATIVE_LIB_DIRECTORIES
2185       Default value for the ANDROID_NATIVE_LIB_DIRECTORIES  target  property.
2186       See that target property for additional information.
2187
2188   CMAKE_ANDROID_NDK
2189       When  Cross Compiling for Android with the NDK, this variable holds the
2190       absolute path to the root directory of the  NDK.   The  directory  must
2191       contain a platforms subdirectory holding the android-<api> directories.
2192
2193   CMAKE_ANDROID_NDK_DEPRECATED_HEADERS
2194       When Cross Compiling for Android with the NDK, this variable may be set
2195       to specify whether to use the deprecated per-api-level headers  instead
2196       of the unified headers.
2197
2198       If not specified, the default will be false if using a NDK version that
2199       provides the unified headers and true otherwise.
2200
2201   CMAKE_ANDROID_NDK_TOOLCHAIN_HOST_TAG
2202       When Cross Compiling for Android with the NDK, this  variable  provides
2203       the  NDK’s “host tag” used to construct the path to prebuilt toolchains
2204       that run on the host.
2205
2206   CMAKE_ANDROID_NDK_TOOLCHAIN_VERSION
2207       When Cross Compiling for Android with the NDK, this variable may be set
2208       to  specify  the  version  of the toolchain to be used as the compiler.
2209       The variable must be set to one of these forms:
2210
2211       · <major>.<minor>: GCC of specified version
2212
2213       · clang<major>.<minor>: Clang of specified version
2214
2215       · clang: Clang of most recent available version
2216
2217       A toolchain of the requested version will be selected automatically  to
2218       match the ABI named in the CMAKE_ANDROID_ARCH_ABI variable.
2219
2220       If  not  specified, the default will be a value that selects the latest
2221       available GCC toolchain.
2222
2223   CMAKE_ANDROID_PROCESS_MAX
2224       Default value for the ANDROID_PROCESS_MAX target  property.   See  that
2225       target property for additional information.
2226
2227   CMAKE_ANDROID_PROGUARD
2228       Default  value for the ANDROID_PROGUARD target property.  See that tar‐
2229       get property for additional information.
2230
2231   CMAKE_ANDROID_PROGUARD_CONFIG_PATH
2232       Default value for  the  ANDROID_PROGUARD_CONFIG_PATH  target  property.
2233       See that target property for additional information.
2234
2235   CMAKE_ANDROID_SECURE_PROPS_PATH
2236       Default  value  for the ANDROID_SECURE_PROPS_PATH target property.  See
2237       that target property for additional information.
2238
2239   CMAKE_ANDROID_SKIP_ANT_STEP
2240       Default value for the ANDROID_SKIP_ANT_STEP target property.  See  that
2241       target property for additional information.
2242
2243   CMAKE_ANDROID_STANDALONE_TOOLCHAIN
2244       When  Cross  Compiling  for  Android  with a Standalone Toolchain, this
2245       variable  holds  the  absolute  path  to  the  root  directory  of  the
2246       toolchain.   The  specified  directory must contain a sysroot subdirec‐
2247       tory.
2248
2249   CMAKE_ANDROID_STL_TYPE
2250       When Cross Compiling for Android with NVIDIA Nsight Tegra Visual Studio
2251       Edition,  this variable may be set to specify the default value for the
2252       ANDROID_STL_TYPE target property.  See that target property  for  addi‐
2253       tional information.
2254
2255       When Cross Compiling for Android with the NDK, this variable may be set
2256       to specify the STL variant to be used.  The value may be one of:
2257
2258       none   No C++ Support
2259
2260       system Minimal C++ without STL
2261
2262       gabi++_static
2263              GAbi++ Static
2264
2265       gabi++_shared
2266              GAbi++ Shared
2267
2268       gnustl_static
2269              GNU libstdc++ Static
2270
2271       gnustl_shared
2272              GNU libstdc++ Shared
2273
2274       c++_static
2275              LLVM libc++ Static
2276
2277       c++_shared
2278              LLVM libc++ Shared
2279
2280       stlport_static
2281              STLport Static
2282
2283       stlport_shared
2284              STLport Shared
2285
2286       The default value is gnustl_static.  Note  that  this  default  differs
2287       from  the  native  NDK  build system because CMake may be used to build
2288       projects for Android that are not natively implemented for it  and  use
2289       the C++ standard library.
2290
2291   CMAKE_ARCHIVE_OUTPUT_DIRECTORY
2292       Where to put all the ARCHIVE target files when built.
2293
2294       This  variable is used to initialize the ARCHIVE_OUTPUT_DIRECTORY prop‐
2295       erty on all the targets.   See  that  target  property  for  additional
2296       information.
2297
2298   CMAKE_ARCHIVE_OUTPUT_DIRECTORY_<CONFIG>
2299       Where  to  put  all  the ARCHIVE target files when built for a specific
2300       configuration.
2301
2302       This variable is used to initialize the  ARCHIVE_OUTPUT_DIRECTORY_<CON‐
2303       FIG>  property  on all the targets.  See that target property for addi‐
2304       tional information.
2305
2306   CMAKE_AUTOGEN_PARALLEL
2307       Number of parallel moc or uic processes to start when using AUTOMOC and
2308       AUTOUIC.
2309
2310       This  variable  is  used to initialize the AUTOGEN_PARALLEL property on
2311       all the targets.  See that target property for additional information.
2312
2313       By default CMAKE_AUTOGEN_PARALLEL is unset.
2314
2315   CMAKE_AUTOMOC
2316       Whether to handle moc automatically for Qt targets.
2317
2318       This variable is used to initialize the AUTOMOC  property  on  all  the
2319       targets.  See that target property for additional information.
2320
2321   CMAKE_AUTOMOC_COMPILER_PREDEFINES
2322       This  variable  is  used  to initialize the AUTOMOC_COMPILER_PREDEFINES
2323       property on all the targets. See that target  property  for  additional
2324       information.
2325
2326       By default it is ON.
2327
2328   CMAKE_AUTOMOC_DEPEND_FILTERS
2329       Filter  definitions  used  by  CMAKE_AUTOMOC to extract file names from
2330       source code as additional dependencies for the moc file.
2331
2332       This variable is used to initialize the AUTOMOC_DEPEND_FILTERS property
2333       on  all  the  targets. See that target property for additional informa‐
2334       tion.
2335
2336       By default it is empty.
2337
2338   CMAKE_AUTOMOC_MACRO_NAMES
2339       A ;-list list of macro names used by CMAKE_AUTOMOC to  determine  if  a
2340       C++ file needs to be processed by moc.
2341
2342       This variable is used to initialize the AUTOMOC_MACRO_NAMES property on
2343       all the targets. See that target property for additional information.
2344
2345       The default value is Q_OBJECT;Q_GADGET;Q_NAMESPACE.
2346
2347   Example
2348       Let CMake know that source files that contain CUSTOM_MACRO must be  moc
2349       processed as well:
2350
2351          set(CMAKE_AUTOMOC ON)
2352          list(APPEND CMAKE_AUTOMOC_MACRO_NAMES "CUSTOM_MACRO")
2353
2354   CMAKE_AUTOMOC_MOC_OPTIONS
2355       Additional options for moc when using CMAKE_AUTOMOC.
2356
2357       This variable is used to initialize the AUTOMOC_MOC_OPTIONS property on
2358       all the targets.  See that target property for additional information.
2359
2360   CMAKE_AUTORCC
2361       Whether to handle rcc automatically for Qt targets.
2362
2363       This variable is used to initialize the AUTORCC  property  on  all  the
2364       targets.  See that target property for additional information.
2365
2366   CMAKE_AUTORCC_OPTIONS
2367       Additional options for rcc when using CMAKE_AUTORCC.
2368
2369       This variable is used to initialize the AUTORCC_OPTIONS property on all
2370       the targets.  See that target property for additional information.
2371
2372   EXAMPLE
2373          # ...
2374          set(CMAKE_AUTORCC_OPTIONS "--compress;9")
2375          # ...
2376
2377   CMAKE_AUTOUIC
2378       Whether to handle uic automatically for Qt targets.
2379
2380       This variable is used to initialize the AUTOUIC  property  on  all  the
2381       targets.  See that target property for additional information.
2382
2383   CMAKE_AUTOUIC_OPTIONS
2384       Additional options for uic when using CMAKE_AUTOUIC.
2385
2386       This variable is used to initialize the AUTOUIC_OPTIONS property on all
2387       the targets.  See that target property for additional information.
2388
2389   EXAMPLE
2390          # ...
2391          set_property(CMAKE_AUTOUIC_OPTIONS "--no-protection")
2392          # ...
2393
2394   CMAKE_AUTOUIC_SEARCH_PATHS
2395       Search path list used by CMAKE_AUTOUIC to find included .ui files.
2396
2397       This variable is used to initialize the  AUTOUIC_SEARCH_PATHS  property
2398       on  all  the  targets. See that target property for additional informa‐
2399       tion.
2400
2401       By default it is empty.
2402
2403   CMAKE_BUILD_RPATH
2404       A ;-list specifying runtime path (RPATH) entries  to  add  to  binaries
2405       linked  in the build tree (for platforms that support it).  The entries
2406       will not be used for binaries  in  the  install  tree.   See  also  the
2407       CMAKE_INSTALL_RPATH variable.
2408
2409       This is used to initialize the BUILD_RPATH target property for all tar‐
2410       gets.
2411
2412   CMAKE_BUILD_WITH_INSTALL_NAME_DIR
2413       Whether to use INSTALL_NAME_DIR on targets in the build tree.
2414
2415       This variable is used  to  initialize  the  BUILD_WITH_INSTALL_NAME_DIR
2416       property on all targets.
2417
2418   CMAKE_BUILD_WITH_INSTALL_RPATH
2419       Use the install path for the RPATH.
2420
2421       Normally CMake uses the build tree for the RPATH when building executa‐
2422       bles etc on systems that use RPATH.  When the software is installed the
2423       executables  etc  are  relinked by CMake to have the install RPATH.  If
2424       this variable is set to true then the software is always built with the
2425       install  path  for  the  RPATH  and  does  not need to be relinked when
2426       installed.
2427
2428   CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY
2429       Output directory for MS debug symbol .pdb files generated by  the  com‐
2430       piler while building source files.
2431
2432       This  variable  is  used to initialize the COMPILE_PDB_OUTPUT_DIRECTORY
2433       property on all the targets.
2434
2435   CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_<CONFIG>
2436       Per-configuration output directory for MS debug symbol .pdb files  gen‐
2437       erated by the compiler while building source files.
2438
2439       This  is a per-configuration version of CMAKE_COMPILE_PDB_OUTPUT_DIREC‐
2440       TORY.   This  variable  is  used  to  initialize  the  COMPILE_PDB_OUT‐
2441       PUT_DIRECTORY_<CONFIG> property on all the targets.
2442
2443   CMAKE_<CONFIG>_POSTFIX
2444       Default filename postfix for libraries under configuration <CONFIG>.
2445
2446       When  a  non-executable  target  is created its <CONFIG>_POSTFIX target
2447       property is initialized with the value of this variable if it is set.
2448
2449   CMAKE_CUDA_SEPARABLE_COMPILATION
2450       Default value for  CUDA_SEPARABLE_COMPILATION  target  property.   This
2451       variable  is  used  to  initialize the property on each target as it is
2452       created.
2453
2454   CMAKE_DEBUG_POSTFIX
2455       See variable CMAKE_<CONFIG>_POSTFIX.
2456
2457       This variable  is  a  special  case  of  the  more-general  CMAKE_<CON‐
2458       FIG>_POSTFIX variable for the DEBUG configuration.
2459
2460   CMAKE_ENABLE_EXPORTS
2461       Specify whether an executable exports symbols for loadable modules.
2462
2463       Normally  an  executable  does not export any symbols because it is the
2464       final program.  It is possible for an executable to export  symbols  to
2465       be  used  by loadable modules.  When this property is set to true CMake
2466       will allow other targets to  link  to  the  executable  with  the  TAR‐
2467       GET_LINK_LIBRARIES()  command.   On all platforms a target-level depen‐
2468       dency on the executable is created for targets that link  to  it.   For
2469       DLL  platforms  an import library will be created for the exported sym‐
2470       bols and then used for linking.  All  Windows-based  systems  including
2471       Cygwin  are DLL platforms.  For non-DLL platforms that require all sym‐
2472       bols to be resolved at link time, such as OS X, the module will link to
2473       the  executable  using  a  flag like -bundle_loader.  For other non-DLL
2474       platforms the link rule is simply ignored since the dynamic loader will
2475       automatically bind symbols when the module is loaded.
2476
2477       This  variable is used to initialize the target property ENABLE_EXPORTS
2478       for executable targets.
2479
2480   CMAKE_EXE_LINKER_FLAGS
2481       Linker flags to be used to create executables.
2482
2483       These flags will be used by the linker when creating an executable.
2484
2485   CMAKE_EXE_LINKER_FLAGS_<CONFIG>
2486       Flags to be used when linking an executable.
2487
2488       Same as CMAKE_C_FLAGS_* but used by the linker when  creating  executa‐
2489       bles.
2490
2491   CMAKE_EXE_LINKER_FLAGS_<CONFIG>_INIT
2492       Value  used  to  initialize  the  CMAKE_EXE_LINKER_FLAGS_<CONFIG> cache
2493       entry the first time a build tree  is  configured.   This  variable  is
2494       meant  to be set by a toolchain file.  CMake may prepend or append con‐
2495       tent to the value based on the environment and target platform.
2496
2497       See also CMAKE_EXE_LINKER_FLAGS_INIT.
2498
2499   CMAKE_EXE_LINKER_FLAGS_INIT
2500       Value used to initialize the  CMAKE_EXE_LINKER_FLAGS  cache  entry  the
2501       first  time  a  build tree is configured.  This variable is meant to be
2502       set by a toolchain file.  CMake may prepend or append  content  to  the
2503       value based on the environment and target platform.
2504
2505       See        also        the        configuration-specific       variable
2506       CMAKE_EXE_LINKER_FLAGS_<CONFIG>_INIT.
2507
2508   CMAKE_Fortran_FORMAT
2509       Set to FIXED or FREE to indicate the Fortran source layout.
2510
2511       This variable is used to initialize the Fortran_FORMAT property on  all
2512       the targets.  See that target property for additional information.
2513
2514   CMAKE_Fortran_MODULE_DIRECTORY
2515       Fortran module output directory.
2516
2517       This  variable is used to initialize the Fortran_MODULE_DIRECTORY prop‐
2518       erty on all the targets.   See  that  target  property  for  additional
2519       information.
2520
2521   CMAKE_GNUtoMS
2522       Convert GNU import libraries (.dll.a) to MS format (.lib).
2523
2524       This  variable  is  used  to initialize the GNUtoMS property on targets
2525       when they are created.  See that target property for additional  infor‐
2526       mation.
2527
2528   CMAKE_INCLUDE_CURRENT_DIR
2529       Automatically  add  the  current  source  and  build directories to the
2530       include path.
2531
2532       If this  variable  is  enabled,  CMake  automatically  adds  CMAKE_CUR‐
2533       RENT_SOURCE_DIR  and  CMAKE_CURRENT_BINARY_DIR  to the include path for
2534       each directory.  These additional include directories do not  propagate
2535       down  to  subdirectories.   This  is  useful  mainly  for out-of-source
2536       builds, where files generated into the build tree are included by files
2537       located in the source tree.
2538
2539       By default CMAKE_INCLUDE_CURRENT_DIR is OFF.
2540
2541   CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE
2542       Automatically  add  the  current  source  and  build directories to the
2543       INTERFACE_INCLUDE_DIRECTORIES target property.
2544
2545       If this variable is enabled, CMake automatically adds for  each  shared
2546       library  target,  static  library  target, module target and executable
2547       target, CMAKE_CURRENT_SOURCE_DIR and  CMAKE_CURRENT_BINARY_DIR  to  the
2548       INTERFACE_INCLUDE_DIRECTORIES     target    property.     By    default
2549       CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE is OFF.
2550
2551   CMAKE_INSTALL_NAME_DIR
2552       OS X directory name for installed targets.
2553
2554       CMAKE_INSTALL_NAME_DIR is used to initialize the INSTALL_NAME_DIR prop‐
2555       erty on all targets.  See that target property for more information.
2556
2557   CMAKE_INSTALL_RPATH
2558       The rpath to use for installed targets.
2559
2560       A  semicolon-separated  list  specifying  the rpath to use in installed
2561       targets (for platforms that support it).  This is  used  to  initialize
2562       the target property INSTALL_RPATH for all targets.
2563
2564   CMAKE_INSTALL_RPATH_USE_LINK_PATH
2565       Add paths to linker search and installed rpath.
2566
2567       CMAKE_INSTALL_RPATH_USE_LINK_PATH is a boolean that if set to true will
2568       append directories in the linker search path and outside the project to
2569       the  INSTALL_RPATH.   This  is  used  to initialize the target property
2570       INSTALL_RPATH_USE_LINK_PATH for all targets.
2571
2572   CMAKE_INTERPROCEDURAL_OPTIMIZATION
2573       Default value for INTERPROCEDURAL_OPTIMIZATION of targets.
2574
2575       This variable is used to  initialize  the  INTERPROCEDURAL_OPTIMIZATION
2576       property  on  all the targets.  See that target property for additional
2577       information.
2578
2579   CMAKE_INTERPROCEDURAL_OPTIMIZATION_<CONFIG>
2580       Default value for INTERPROCEDURAL_OPTIMIZATION_<CONFIG> of targets.
2581
2582       This variable  is  used  to  initialize  the  INTERPROCEDURAL_OPTIMIZA‐
2583       TION_<CONFIG>  property  on  all the targets.  See that target property
2584       for additional information.
2585
2586   CMAKE_IOS_INSTALL_COMBINED
2587       Default value for IOS_INSTALL_COMBINED of targets.
2588
2589       This variable is used to initialize the  IOS_INSTALL_COMBINED  property
2590       on  all  the targets.  See that target property for additional informa‐
2591       tion.
2592
2593   CMAKE_<LANG>_CLANG_TIDY
2594       Default value for <LANG>_CLANG_TIDY target property.  This variable  is
2595       used  to initialize the property on each target as it is created.  This
2596       is done only when <LANG> is C or CXX.
2597
2598   CMAKE_<LANG>_COMPILER_LAUNCHER
2599       Default value for <LANG>_COMPILER_LAUNCHER target property.  This vari‐
2600       able  is  used  to initialize the property on each target as it is cre‐
2601       ated.  This is done only when <LANG> is C, CXX, Fortran, or CUDA.
2602
2603   CMAKE_<LANG>_CPPCHECK
2604       Default value for <LANG>_CPPCHECK target  property.  This  variable  is
2605       used  to initialize the property on each target as it is created.  This
2606       is done only when <LANG> is C or CXX.
2607
2608   CMAKE_<LANG>_CPPLINT
2609       Default value for <LANG>_CPPLINT target property. This variable is used
2610       to  initialize  the  property on each target as it is created.  This is
2611       done only when <LANG> is C or CXX.
2612
2613   CMAKE_<LANG>_INCLUDE_WHAT_YOU_USE
2614       Default value for <LANG>_INCLUDE_WHAT_YOU_USE  target  property.   This
2615       variable  is  used  to  initialize the property on each target as it is
2616       created.  This is done only when <LANG> is C or CXX.
2617
2618   CMAKE_<LANG>_VISIBILITY_PRESET
2619       Default value for the <LANG>_VISIBILITY_PRESET target property  when  a
2620       target is created.
2621
2622   CMAKE_LIBRARY_OUTPUT_DIRECTORY
2623       Where to put all the LIBRARY target files when built.
2624
2625       This  variable is used to initialize the LIBRARY_OUTPUT_DIRECTORY prop‐
2626       erty on all the targets.   See  that  target  property  for  additional
2627       information.
2628
2629   CMAKE_LIBRARY_OUTPUT_DIRECTORY_<CONFIG>
2630       Where  to  put  all  the LIBRARY target files when built for a specific
2631       configuration.
2632
2633       This variable is used to initialize the  LIBRARY_OUTPUT_DIRECTORY_<CON‐
2634       FIG>  property  on all the targets.  See that target property for addi‐
2635       tional information.
2636
2637   CMAKE_LIBRARY_PATH_FLAG
2638       The flag to be used to add a library search path to a compiler.
2639
2640       The flag will be used to specify a library directory to  the  compiler.
2641       On most compilers this is -L.
2642
2643   CMAKE_LINK_DEF_FILE_FLAG
2644       Linker flag to be used to specify a .def file for dll creation.
2645
2646       The  flag  will  be used to add a .def file when creating a dll on Win‐
2647       dows; this is only defined on Windows.
2648
2649   CMAKE_LINK_DEPENDS_NO_SHARED
2650       Whether to skip link dependencies on shared library files.
2651
2652       This variable initializes the LINK_DEPENDS_NO_SHARED property  on  tar‐
2653       gets  when  they  are created.  See that target property for additional
2654       information.
2655
2656   CMAKE_LINK_INTERFACE_LIBRARIES
2657       Default value for LINK_INTERFACE_LIBRARIES of targets.
2658
2659       This variable is used to initialize the LINK_INTERFACE_LIBRARIES  prop‐
2660       erty  on  all  the  targets.   See  that target property for additional
2661       information.
2662
2663   CMAKE_LINK_LIBRARY_FILE_FLAG
2664       Flag to be used to link a library specified by a path to its file.
2665
2666       The flag will be used before a  library  file  path  is  given  to  the
2667       linker.  This is needed only on very few platforms.
2668
2669   CMAKE_LINK_LIBRARY_FLAG
2670       Flag to be used to link a library into an executable.
2671
2672       The  flag  will  be used to specify a library to link to an executable.
2673       On most compilers this is -l.
2674
2675   CMAKE_LINK_WHAT_YOU_USE
2676       Default value for LINK_WHAT_YOU_USE target property.  This variable  is
2677       used to initialize the property on each target as it is created.
2678
2679   CMAKE_MACOSX_BUNDLE
2680       Default value for MACOSX_BUNDLE of targets.
2681
2682       This  variable  is used to initialize the MACOSX_BUNDLE property on all
2683       the targets.  See that target property for additional information.
2684
2685   CMAKE_MACOSX_RPATH
2686       Whether to use rpaths on OS X and iOS.
2687
2688       This variable is used to initialize the MACOSX_RPATH  property  on  all
2689       targets.
2690
2691   CMAKE_MAP_IMPORTED_CONFIG_<CONFIG>
2692       Default value for MAP_IMPORTED_CONFIG_<CONFIG> of targets.
2693
2694       This  variable  is  used to initialize the MAP_IMPORTED_CONFIG_<CONFIG>
2695       property on all the targets.  See that target property  for  additional
2696       information.
2697
2698   CMAKE_MODULE_LINKER_FLAGS
2699       Linker flags to be used to create modules.
2700
2701       These flags will be used by the linker when creating a module.
2702
2703   CMAKE_MODULE_LINKER_FLAGS_<CONFIG>
2704       Flags to be used when linking a module.
2705
2706       Same as CMAKE_C_FLAGS_* but used by the linker when creating modules.
2707
2708   CMAKE_MODULE_LINKER_FLAGS_<CONFIG>_INIT
2709       Value  used  to initialize the CMAKE_MODULE_LINKER_FLAGS_<CONFIG> cache
2710       entry the first time a build tree  is  configured.   This  variable  is
2711       meant  to be set by a toolchain file.  CMake may prepend or append con‐
2712       tent to the value based on the environment and target platform.
2713
2714       See also CMAKE_MODULE_LINKER_FLAGS_INIT.
2715
2716   CMAKE_MODULE_LINKER_FLAGS_INIT
2717       Value used to initialize the CMAKE_MODULE_LINKER_FLAGS cache entry  the
2718       first  time  a  build tree is configured.  This variable is meant to be
2719       set by a toolchain file.  CMake may prepend or append  content  to  the
2720       value based on the environment and target platform.
2721
2722       See     also    the    configuration-specific    variable    CMAKE_MOD‐
2723       ULE_LINKER_FLAGS_<CONFIG>_INIT.
2724
2725   CMAKE_MSVCIDE_RUN_PATH
2726       Extra PATH locations that should be used when executing add_custom_com‐
2727       mand()  or  add_custom_target() when using the Visual Studio 9 2008 (or
2728       above) generator. This allows for running commands and using dll’s that
2729       the IDE environment is not aware of.
2730
2731       If  not  set  explicitly  the  value  is  initialized by the CMAKE_MSV‐
2732       CIDE_RUN_PATH environment variable, if set, and otherwise left empty.
2733
2734   CMAKE_NINJA_OUTPUT_PATH_PREFIX
2735       Set output files path prefix for the Ninja generator.
2736
2737       Every output files listed in the generated build.ninja will be prefixed
2738       by the contents of this variable (a trailing slash is appended if miss‐
2739       ing).  This is useful when the generated ninja  file  is  meant  to  be
2740       embedded as a subninja file into a super ninja project.  For example, a
2741       ninja build file generated with a command like:
2742
2743          cd top-build-dir/sub &&
2744          cmake -G Ninja -DCMAKE_NINJA_OUTPUT_PATH_PREFIX=sub/ path/to/source
2745
2746       can be embedded in  top-build-dir/build.ninja  with  a  directive  like
2747       this:
2748
2749          subninja sub/build.ninja
2750
2751       The  auto-regeneration  rule  in top-build-dir/build.ninja must have an
2752       order-only dependency on sub/build.ninja.
2753
2754       NOTE:
2755          When CMAKE_NINJA_OUTPUT_PATH_PREFIX is set, the project generated by
2756          CMake  cannot  be  used as a standalone project.  No default targets
2757          are specified.
2758
2759   CMAKE_NO_BUILTIN_CHRPATH
2760       Do not use the builtin ELF editor to fix RPATHs on installation.
2761
2762       When an ELF binary needs to have a different RPATH  after  installation
2763       than  it  does in the build tree, CMake uses a builtin editor to change
2764       the RPATH in the installed copy.  If this variable is set to true  then
2765       CMake  will  relink the binary before installation instead of using its
2766       builtin editor.
2767
2768   CMAKE_NO_SYSTEM_FROM_IMPORTED
2769       Default value for NO_SYSTEM_FROM_IMPORTED of targets.
2770
2771       This variable is used to initialize the  NO_SYSTEM_FROM_IMPORTED  prop‐
2772       erty  on  all  the  targets.   See  that target property for additional
2773       information.
2774
2775   CMAKE_OSX_ARCHITECTURES
2776       Target specific architectures for OS X and iOS.
2777
2778       This variable is used to initialize the OSX_ARCHITECTURES  property  on
2779       each  target  as it is creaed.  See that target property for additional
2780       information.
2781
2782       The value of this variable should be set prior to the  first  project()
2783       or  enable_language()  command invocation because it may influence con‐
2784       figuration of the toolchain and  flags.   It  is  intended  to  be  set
2785       locally by the user creating a build tree.
2786
2787       Despite  the  OSX part in the variable name(s) they apply also to other
2788       SDKs than macOS like iOS, tvOS, or watchOS.
2789
2790       This variable is ignored on platforms other than Apple.
2791
2792   CMAKE_OSX_DEPLOYMENT_TARGET
2793       Specify the minimum version of the target platform (e.g. macOS or  iOS)
2794       on which the target binaries are to be deployed.  CMake uses this vari‐
2795       able value for the -mmacosx-version-min flag or their respective target
2796       platform  equivalents.   For older Xcode versions that shipped multiple
2797       macOS SDKs  this  variable  also  helps  to  choose  the  SDK  in  case
2798       CMAKE_OSX_SYSROOT is unset.
2799
2800       If  not  set  explicitly the value is initialized by the MACOSX_DEPLOY‐
2801       MENT_TARGET environment variable, if set, and otherwise computed  based
2802       on the host platform.
2803
2804       The  value  of this variable should be set prior to the first project()
2805       or enable_language() command invocation because it may  influence  con‐
2806       figuration  of  the  toolchain  and  flags.   It  is intended to be set
2807       locally by the user creating a build tree.
2808
2809       Despite the OSX part in the variable name(s) they apply also  to  other
2810       SDKs than macOS like iOS, tvOS, or watchOS.
2811
2812       This variable is ignored on platforms other than Apple.
2813
2814   CMAKE_OSX_SYSROOT
2815       Specify  the  location  or  name  of  the OS X platform SDK to be used.
2816       CMake uses this value to compute the value of  the  -isysroot  flag  or
2817       equivalent and to help the find_* commands locate files in the SDK.
2818
2819       If  not set explicitly the value is initialized by the SDKROOT environ‐
2820       ment  variable,  if  set,  and  otherwise   computed   based   on   the
2821       CMAKE_OSX_DEPLOYMENT_TARGET or the host platform.
2822
2823       The  value  of this variable should be set prior to the first project()
2824       or enable_language() command invocation because it may  influence  con‐
2825       figuration  of  the  toolchain  and  flags.   It  is intended to be set
2826       locally by the user creating a build tree.
2827
2828       Despite the OSX part in the variable name(s) they apply also  to  other
2829       SDKs than macOS like iOS, tvOS, or watchOS.
2830
2831       This variable is ignored on platforms other than Apple.
2832
2833   CMAKE_PDB_OUTPUT_DIRECTORY
2834       Output directory for MS debug symbol .pdb files generated by the linker
2835       for executable and shared library targets.
2836
2837       This variable is used to initialize the  PDB_OUTPUT_DIRECTORY  property
2838       on  all  the targets.  See that target property for additional informa‐
2839       tion.
2840
2841   CMAKE_PDB_OUTPUT_DIRECTORY_<CONFIG>
2842       Per-configuration output directory for MS debug symbol .pdb files  gen‐
2843       erated by the linker for executable and shared library targets.
2844
2845       This  is  a  per-configuration  version  of CMAKE_PDB_OUTPUT_DIRECTORY.
2846       This variable is used to initialize  the  PDB_OUTPUT_DIRECTORY_<CONFIG>
2847       property  on  all the targets.  See that target property for additional
2848       information.
2849
2850   CMAKE_POSITION_INDEPENDENT_CODE
2851       Default value for POSITION_INDEPENDENT_CODE of targets.
2852
2853       This variable is used to initialize the POSITION_INDEPENDENT_CODE prop‐
2854       erty  on  all  the  targets.   See  that target property for additional
2855       information.  If set, it’s value is also used by the try_compile() com‐
2856       mand.
2857
2858   CMAKE_RUNTIME_OUTPUT_DIRECTORY
2859       Where to put all the RUNTIME target files when built.
2860
2861       This  variable is used to initialize the RUNTIME_OUTPUT_DIRECTORY prop‐
2862       erty on all the targets.   See  that  target  property  for  additional
2863       information.
2864
2865   CMAKE_RUNTIME_OUTPUT_DIRECTORY_<CONFIG>
2866       Where  to  put  all  the RUNTIME target files when built for a specific
2867       configuration.
2868
2869       This variable is used to initialize the  RUNTIME_OUTPUT_DIRECTORY_<CON‐
2870       FIG>  property  on all the targets.  See that target property for addi‐
2871       tional information.
2872
2873   CMAKE_SHARED_LINKER_FLAGS
2874       Linker flags to be used to create shared libraries.
2875
2876       These flags will be used by the linker when creating a shared library.
2877
2878   CMAKE_SHARED_LINKER_FLAGS_<CONFIG>
2879       Flags to be used when linking a shared library.
2880
2881       Same as CMAKE_C_FLAGS_* but used by the  linker  when  creating  shared
2882       libraries.
2883
2884   CMAKE_SHARED_LINKER_FLAGS_<CONFIG>_INIT
2885       Value  used  to initialize the CMAKE_SHARED_LINKER_FLAGS_<CONFIG> cache
2886       entry the first time a build tree  is  configured.   This  variable  is
2887       meant  to be set by a toolchain file.  CMake may prepend or append con‐
2888       tent to the value based on the environment and target platform.
2889
2890       See also CMAKE_SHARED_LINKER_FLAGS_INIT.
2891
2892   CMAKE_SHARED_LINKER_FLAGS_INIT
2893       Value used to initialize the CMAKE_SHARED_LINKER_FLAGS cache entry  the
2894       first  time  a  build tree is configured.  This variable is meant to be
2895       set by a toolchain file.  CMake may prepend or append  content  to  the
2896       value based on the environment and target platform.
2897
2898       See        also        the        configuration-specific       variable
2899       CMAKE_SHARED_LINKER_FLAGS_<CONFIG>_INIT.
2900
2901   CMAKE_SKIP_BUILD_RPATH
2902       Do not include RPATHs in the build tree.
2903
2904       Normally CMake uses the build tree for the RPATH when building executa‐
2905       bles etc on systems that use RPATH.  When the software is installed the
2906       executables etc are relinked by CMake to have the  install  RPATH.   If
2907       this  variable is set to true then the software is always built with no
2908       RPATH.
2909
2910   CMAKE_SKIP_INSTALL_RPATH
2911       Do not include RPATHs in the install tree.
2912
2913       Normally CMake uses the build tree for the RPATH when building executa‐
2914       bles etc on systems that use RPATH.  When the software is installed the
2915       executables etc are relinked by CMake to have the  install  RPATH.   If
2916       this  variable  is  set  to  true then the software is always installed
2917       without RPATH, even if RPATH is enabled when  building.   This  can  be
2918       useful for example to allow running tests from the build directory with
2919       RPATH enabled before the installation step.  To omit RPATH in both  the
2920       build and install steps, use CMAKE_SKIP_RPATH instead.
2921
2922   CMAKE_STATIC_LINKER_FLAGS
2923       Linker flags to be used to create static libraries.
2924
2925       These flags will be used by the linker when creating a static library.
2926
2927   CMAKE_STATIC_LINKER_FLAGS_<CONFIG>
2928       Flags to be used when linking a static library.
2929
2930       Same  as  CMAKE_C_FLAGS_*  but  used by the linker when creating static
2931       libraries.
2932
2933   CMAKE_STATIC_LINKER_FLAGS_<CONFIG>_INIT
2934       Value used to initialize the  CMAKE_STATIC_LINKER_FLAGS_<CONFIG>  cache
2935       entry  the  first  time  a  build tree is configured.  This variable is
2936       meant to be set by a toolchain file.  CMake may prepend or append  con‐
2937       tent to the value based on the environment and target platform.
2938
2939       See also CMAKE_STATIC_LINKER_FLAGS_INIT.
2940
2941   CMAKE_STATIC_LINKER_FLAGS_INIT
2942       Value  used to initialize the CMAKE_STATIC_LINKER_FLAGS cache entry the
2943       first time a build tree is configured.  This variable is  meant  to  be
2944       set  by  a  toolchain file.  CMake may prepend or append content to the
2945       value based on the environment and target platform.
2946
2947       See       also        the        configuration-specific        variable
2948       CMAKE_STATIC_LINKER_FLAGS_<CONFIG>_INIT.
2949
2950   CMAKE_TRY_COMPILE_CONFIGURATION
2951       Build configuration used for try_compile() and try_run() projects.
2952
2953       Projects  built  by try_compile() and try_run() are built synchronously
2954       during the CMake configuration step.  Therefore a specific  build  con‐
2955       figuration  must  be chosen even if the generated build system supports
2956       multiple configurations.
2957
2958   CMAKE_TRY_COMPILE_PLATFORM_VARIABLES
2959       List of variables that the try_compile() command source file  signature
2960       must  propagate into the test project in order to target the same plat‐
2961       form as the host project.
2962
2963       This variable should not be set by project code.  It is meant to be set
2964       by  CMake’s  platform information modules for the current toolchain, or
2965       by a toolchain file when used with CMAKE_TOOLCHAIN_FILE.
2966
2967       Variables meaningful to CMake, such as CMAKE_<LANG>_FLAGS,  are  propa‐
2968       gated automatically.  The CMAKE_TRY_COMPILE_PLATFORM_VARIABLES variable
2969       may be set to pass custom variables meaningful  to  a  toolchain  file.
2970       For example, a toolchain file may contain:
2971
2972          set(CMAKE_SYSTEM_NAME ...)
2973          set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES MY_CUSTOM_VARIABLE)
2974          # ... use MY_CUSTOM_VARIABLE ...
2975
2976       If a user passes -DMY_CUSTOM_VARIABLE=SomeValue to CMake then this set‐
2977       ting will be made visible to the  toolchain  file  both  for  the  main
2978       project  and  for  test projects generated by the try_compile() command
2979       source file signature.
2980
2981   CMAKE_TRY_COMPILE_TARGET_TYPE
2982       Type of target generated for try_compile() calls using the source  file
2983       signature.  Valid values are:
2984
2985       EXECUTABLE
2986              Use  add_executable()  to  name the source file in the generated
2987              project.  This is the default if no value is given.
2988
2989       STATIC_LIBRARY
2990              Use add_library() with the STATIC option to name the source file
2991              in the generated project.  This avoids running the linker and is
2992              intended for use with  cross-compiling  toolchains  that  cannot
2993              link without custom flags or linker scripts.
2994
2995   CMAKE_USE_RELATIVE_PATHS
2996       This  variable  has no effect.  The partially implemented effect it had
2997       in previous releases was removed in CMake 3.4.
2998
2999   CMAKE_VISIBILITY_INLINES_HIDDEN
3000       Default value for the VISIBILITY_INLINES_HIDDEN target property when  a
3001       target is created.
3002
3003   CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD
3004       Include INSTALL target to default build.
3005
3006       In  Visual  Studio  solution, by default the INSTALL target will not be
3007       part of the default  build.  Setting  this  variable  will  enable  the
3008       INSTALL target to be part of the default build.
3009
3010   CMAKE_VS_INCLUDE_PACKAGE_TO_DEFAULT_BUILD
3011       Include PACKAGE target to default build.
3012
3013       In  Visual  Studio  solution, by default the PACKAGE target will not be
3014       part of the default build. Setting this variable will enable the  PACK‐
3015       AGE target to be part of the default build.
3016
3017   CMAKE_WIN32_EXECUTABLE
3018       Default value for WIN32_EXECUTABLE of targets.
3019
3020       This  variable  is  used to initialize the WIN32_EXECUTABLE property on
3021       all the targets.  See that target property for additional information.
3022
3023   CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS
3024       Default value for  WINDOWS_EXPORT_ALL_SYMBOLS  target  property.   This
3025       variable  is  used  to  initialize the property on each target as it is
3026       created.
3027
3028   CMAKE_XCODE_ATTRIBUTE_<an-attribute>
3029       Set Xcode target attributes directly.
3030
3031       Tell the Xcode generator to set ‘<an-attribute>’ to a  given  value  in
3032       the generated Xcode project.  Ignored on other generators.
3033
3034       See   the   XCODE_ATTRIBUTE_<an-attribute>   target   property  to  set
3035       attributes on a specific target.
3036
3037       Contents of  CMAKE_XCODE_ATTRIBUTE_<an-attribute>  may  use  “generator
3038       expressions”  with  the syntax $<...>.  See the cmake-generator-expres‐
3039       sions(7) manual for available  expressions.   See  the  cmake-buildsys‐
3040       tem(7) manual for more on defining buildsystem properties.
3041
3042   EXECUTABLE_OUTPUT_PATH
3043       Old executable location variable.
3044
3045       The  target  property RUNTIME_OUTPUT_DIRECTORY supercedes this variable
3046       for a target if it is set.  Executable targets are otherwise placed  in
3047       this directory.
3048
3049   LIBRARY_OUTPUT_PATH
3050       Old library location variable.
3051
3052       The  target  properties ARCHIVE_OUTPUT_DIRECTORY, LIBRARY_OUTPUT_DIREC‐
3053       TORY, and RUNTIME_OUTPUT_DIRECTORY supersede this variable for a target
3054       if  they  are set.  Library targets are otherwise placed in this direc‐
3055       tory.
3056

VARIABLES FOR LANGUAGES

3058   CMAKE_COMPILER_IS_GNUCC
3059       True if the C compiler is GNU.  Use CMAKE_C_COMPILER_ID instead.
3060
3061   CMAKE_COMPILER_IS_GNUCXX
3062       True if the C++  (CXX)  compiler  is  GNU.   Use  CMAKE_CXX_COMPILER_ID
3063       instead.
3064
3065   CMAKE_COMPILER_IS_GNUG77
3066       True  if  the  Fortran  compiler is GNU.  Use CMAKE_Fortran_COMPILER_ID
3067       instead.
3068
3069   CMAKE_CUDA_HOST_COMPILER
3070       Executable to use when compiling host code when compiling CUDA language
3071       files.  Maps  to the nvcc -ccbin option.  Will only be used by CMake on
3072       the first configuration to determine a valid host  compiler  for  CUDA.
3073       After a valid host compiler has been found, this value is read-only.
3074
3075   CMAKE_CUDA_EXTENSIONS
3076       Default value for CUDA_EXTENSIONS property of targets.
3077
3078       This variable is used to initialize the CUDA_EXTENSIONS property on all
3079       targets.  See that target property for additional information.
3080
3081       See the cmake-compile-features(7) manual  for  information  on  compile
3082       features and a list of supported compilers.
3083
3084   CMAKE_CUDA_STANDARD
3085       Default value for CUDA_STANDARD property of targets.
3086
3087       This  variable  is used to initialize the CUDA_STANDARD property on all
3088       targets.  See that target property for additional information.
3089
3090       See the cmake-compile-features(7) manual  for  information  on  compile
3091       features and a list of supported compilers.
3092
3093   CMAKE_CUDA_STANDARD_REQUIRED
3094       Default value for CUDA_STANDARD_REQUIRED property of targets.
3095
3096       This variable is used to initialize the CUDA_STANDARD_REQUIRED property
3097       on all targets.  See that target property for additional information.
3098
3099       See the cmake-compile-features(7) manual  for  information  on  compile
3100       features and a list of supported compilers.
3101
3102   CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES
3103       When  the  CUDA  language  has  been enabled, this provides a ;-list of
3104       include directories provided by the CUDA Toolkit.   The  value  may  be
3105       useful for C++ source files to include CUDA headers.
3106
3107   CMAKE_CXX_COMPILE_FEATURES
3108       List of features known to the C++ compiler
3109
3110       These features are known to be available for use with the C++ compiler.
3111       This   list   is   a   subset   of   the   features   listed   in   the
3112       CMAKE_CXX_KNOWN_FEATURES global property.
3113
3114       See  the  cmake-compile-features(7)  manual  for information on compile
3115       features and a list of supported compilers.
3116
3117   CMAKE_CXX_EXTENSIONS
3118       Default value for CXX_EXTENSIONS property of targets.
3119
3120       This variable is used to initialize the CXX_EXTENSIONS property on  all
3121       targets.  See that target property for additional information.
3122
3123       See  the  cmake-compile-features(7)  manual  for information on compile
3124       features and a list of supported compilers.
3125
3126   CMAKE_CXX_STANDARD
3127       Default value for CXX_STANDARD property of targets.
3128
3129       This variable is used to initialize the CXX_STANDARD  property  on  all
3130       targets.  See that target property for additional information.
3131
3132       See  the  cmake-compile-features(7)  manual  for information on compile
3133       features and a list of supported compilers.
3134
3135   CMAKE_CXX_STANDARD_REQUIRED
3136       Default value for CXX_STANDARD_REQUIRED property of targets.
3137
3138       This variable is used to initialize the CXX_STANDARD_REQUIRED  property
3139       on all targets.  See that target property for additional information.
3140
3141       See  the  cmake-compile-features(7)  manual  for information on compile
3142       features and a list of supported compilers.
3143
3144   CMAKE_C_COMPILE_FEATURES
3145       List of features known to the C compiler
3146
3147       These features are known to be available for use with the  C  compiler.
3148       This  list is a subset of the features listed in the CMAKE_C_KNOWN_FEA‐
3149       TURES global property.
3150
3151       See the cmake-compile-features(7) manual  for  information  on  compile
3152       features and a list of supported compilers.
3153
3154   CMAKE_C_EXTENSIONS
3155       Default value for C_EXTENSIONS property of targets.
3156
3157       This  variable  is  used to initialize the C_EXTENSIONS property on all
3158       targets.  See that target property for additional information.
3159
3160       See the cmake-compile-features(7) manual  for  information  on  compile
3161       features and a list of supported compilers.
3162
3163   CMAKE_C_STANDARD
3164       Default value for C_STANDARD property of targets.
3165
3166       This variable is used to initialize the C_STANDARD property on all tar‐
3167       gets.  See that target property for additional information.
3168
3169       See the cmake-compile-features(7) manual  for  information  on  compile
3170       features and a list of supported compilers.
3171
3172   CMAKE_C_STANDARD_REQUIRED
3173       Default value for C_STANDARD_REQUIRED property of targets.
3174
3175       This variable is used to initialize the C_STANDARD_REQUIRED property on
3176       all targets.  See that target property for additional information.
3177
3178       See the cmake-compile-features(7) manual  for  information  on  compile
3179       features and a list of supported compilers.
3180
3181   CMAKE_Fortran_MODDIR_DEFAULT
3182       Fortran default module output directory.
3183
3184       Most  Fortran  compilers write .mod files to the current working direc‐
3185       tory.  For those that do not, this is set to . and used when  the  For‐
3186       tran_MODULE_DIRECTORY target property is not set.
3187
3188   CMAKE_Fortran_MODDIR_FLAG
3189       Fortran flag for module output directory.
3190
3191       This  stores  the  flag  needed  to  pass the value of the Fortran_MOD‐
3192       ULE_DIRECTORY target property to the compiler.
3193
3194   CMAKE_Fortran_MODOUT_FLAG
3195       Fortran flag to enable module output.
3196
3197       Most Fortran compilers write .mod files out by  default.   For  others,
3198       this stores the flag needed to enable module output.
3199
3200   CMAKE_INTERNAL_PLATFORM_ABI
3201       An internal variable subject to change.
3202
3203       This is used in determining the compiler ABI and is subject to change.
3204
3205   CMAKE_<LANG>_ANDROID_TOOLCHAIN_MACHINE
3206       When  Cross  Compiling for Android this variable contains the toolchain
3207       binutils machine name (e.g. gcc -dumpmachine).  The binutils  typically
3208       have a <machine>- prefix on their name.
3209
3210       See        also        CMAKE_<LANG>_ANDROID_TOOLCHAIN_PREFIX        and
3211       CMAKE_<LANG>_ANDROID_TOOLCHAIN_SUFFIX.
3212
3213   CMAKE_<LANG>_ANDROID_TOOLCHAIN_PREFIX
3214       When Cross Compiling for Android this variable  contains  the  absolute
3215       path prefixing the toolchain GNU compiler and its binutils.
3216
3217       See        also        CMAKE_<LANG>_ANDROID_TOOLCHAIN_SUFFIX        and
3218       CMAKE_<LANG>_ANDROID_TOOLCHAIN_MACHINE.
3219
3220       For example, the path to the linker is:
3221
3222          ${CMAKE_CXX_ANDROID_TOOLCHAIN_PREFIX}ld${CMAKE_CXX_ANDROID_TOOLCHAIN_SUFFIX}
3223
3224   CMAKE_<LANG>_ANDROID_TOOLCHAIN_SUFFIX
3225       When Cross Compiling for Android this variable contains the host  plat‐
3226       form suffix of the toolchain GNU compiler and its binutils.
3227
3228       See        also        CMAKE_<LANG>_ANDROID_TOOLCHAIN_PREFIX        and
3229       CMAKE_<LANG>_ANDROID_TOOLCHAIN_MACHINE.
3230
3231   CMAKE_<LANG>_ARCHIVE_APPEND
3232       Rule variable to append to a static archive.
3233
3234       This is a rule variable that tells CMake how to append to a static  ar‐
3235       chive.   It  is  used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY on
3236       some platforms in order to  support  large  object  counts.   See  also
3237       CMAKE_<LANG>_ARCHIVE_CREATE and CMAKE_<LANG>_ARCHIVE_FINISH.
3238
3239   CMAKE_<LANG>_ARCHIVE_CREATE
3240       Rule variable to create a new static archive.
3241
3242       This  is  a  rule  variable that tells CMake how to create a static ar‐
3243       chive.  It is used in place  of  CMAKE_<LANG>_CREATE_STATIC_LIBRARY  on
3244       some  platforms  in  order  to  support  large object counts.  See also
3245       CMAKE_<LANG>_ARCHIVE_APPEND and CMAKE_<LANG>_ARCHIVE_FINISH.
3246
3247   CMAKE_<LANG>_ARCHIVE_FINISH
3248       Rule variable to finish an existing static archive.
3249
3250       This is a rule variable that tells CMake how to  finish  a  static  ar‐
3251       chive.   It  is  used in place of CMAKE_<LANG>_CREATE_STATIC_LIBRARY on
3252       some platforms in order to  support  large  object  counts.   See  also
3253       CMAKE_<LANG>_ARCHIVE_CREATE and CMAKE_<LANG>_ARCHIVE_APPEND.
3254
3255   CMAKE_<LANG>_COMPILER
3256       The full path to the compiler for LANG.
3257
3258       This  is  the  command  that will be used as the <LANG> compiler.  Once
3259       set, you can not change this variable.
3260
3261   CMAKE_<LANG>_COMPILER_ABI
3262       An internal variable subject to change.
3263
3264       This is used in determining the compiler ABI and is subject to change.
3265
3266   CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID
3267       An internal variable subject to change.
3268
3269       This is used to identify the variant of a compiler based on its  target
3270       architecture.   For some compilers this is needed to determine the cor‐
3271       rect usage.
3272
3273   CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN
3274       The external toolchain for cross-compiling, if supported.
3275
3276       Some compiler toolchains do not ship their own auxiliary utilities such
3277       as  archivers  and  linkers.   The  compiler  driver may support a com‐
3278       mand-line  argument  to   specify   the   location   of   such   tools.
3279       CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN  may  be  set to a path to the
3280       external toolchain and will be passed to the compiler  driver  if  sup‐
3281       ported.
3282
3283       This  variable  may  only  be  set in a toolchain file specified by the
3284       CMAKE_TOOLCHAIN_FILE variable.
3285
3286   CMAKE_<LANG>_COMPILER_ID
3287       Compiler identification string.
3288
3289       A short string unique to the compiler vendor.  Possible values include:
3290
3291          Absoft = Absoft Fortran (absoft.com)
3292          ADSP = Analog VisualDSP++ (analog.com)
3293          AppleClang = Apple Clang (apple.com)
3294          ARMCC = ARM Compiler (arm.com)
3295          Bruce = Bruce C Compiler
3296          CCur = Concurrent Fortran (ccur.com)
3297          Clang = LLVM Clang (clang.llvm.org)
3298          Cray = Cray Compiler (cray.com)
3299          Embarcadero, Borland = Embarcadero (embarcadero.com)
3300          G95 = G95 Fortran (g95.org)
3301          GNU = GNU Compiler Collection (gcc.gnu.org)
3302          HP = Hewlett-Packard Compiler (hp.com)
3303          IAR = IAR Systems (iar.com)
3304          Intel = Intel Compiler (intel.com)
3305          MIPSpro = SGI MIPSpro (sgi.com)
3306          MSVC = Microsoft Visual Studio (microsoft.com)
3307          NVIDIA = NVIDIA CUDA Compiler (nvidia.com)
3308          OpenWatcom = Open Watcom (openwatcom.org)
3309          PGI = The Portland Group (pgroup.com)
3310          Flang = Flang Fortran Compiler
3311          PathScale = PathScale (pathscale.com)
3312          SDCC = Small Device C Compiler (sdcc.sourceforge.net)
3313          SunPro = Oracle Solaris Studio (oracle.com)
3314          TI = Texas Instruments (ti.com)
3315          TinyCC = Tiny C Compiler (tinycc.org)
3316          XL, VisualAge, zOS = IBM XL (ibm.com)
3317
3318       This variable is not guaranteed to be defined for all compilers or lan‐
3319       guages.
3320
3321   CMAKE_<LANG>_COMPILER_LOADED
3322       Defined to true if the language is enabled.
3323
3324       When  language <LANG> is enabled by project() or enable_language() this
3325       variable is defined to 1.
3326
3327   CMAKE_<LANG>_COMPILER_PREDEFINES_COMMAND
3328       Command that outputs the compiler pre definitions.
3329
3330       See AUTOMOC which uses CMAKE_CXX_COMPILER_PREDEFINES_COMMAND to  gener‐
3331       ate the AUTOMOC_COMPILER_PREDEFINES.
3332
3333   CMAKE_<LANG>_COMPILER_TARGET
3334       The target for cross-compiling, if supported.
3335
3336       Some compiler drivers are inherently cross-compilers, such as clang and
3337       QNX qcc. These compiler drivers  support  a  command-line  argument  to
3338       specify the target to cross-compile for.
3339
3340       This  variable  may  only  be  set in a toolchain file specified by the
3341       CMAKE_TOOLCHAIN_FILE variable.
3342
3343   CMAKE_<LANG>_COMPILER_VERSION
3344       Compiler version string.
3345
3346       Compiler version in major[.minor[.patch[.tweak]]] format.   This  vari‐
3347       able is not guaranteed to be defined for all compilers or languages.
3348
3349       For  example  CMAKE_C_COMPILER_VERSION  and  CMAKE_CXX_COMPILER_VERSION
3350       might indicate the respective C and C++ compiler version.
3351
3352   CMAKE_<LANG>_COMPILER_VERSION_INTERNAL
3353       An internal variable subject to change.
3354
3355       This is used to identify the variant of a compiler based on an internal
3356       version  number.   For  some  compilers this is needed to determine the
3357       correct usage.
3358
3359   CMAKE_<LANG>_COMPILE_OBJECT
3360       Rule variable to compile a single object file.
3361
3362       This is a rule variable that tells CMake how to compile a single object
3363       file for the language <LANG>.
3364
3365   CMAKE_<LANG>_CREATE_SHARED_LIBRARY
3366       Rule variable to create a shared library.
3367
3368       This is a rule variable that tells CMake how to create a shared library
3369       for the language <LANG>.
3370
3371   CMAKE_<LANG>_CREATE_SHARED_MODULE
3372       Rule variable to create a shared module.
3373
3374       This is a rule variable that tells CMake how to create a shared library
3375       for the language <LANG>.
3376
3377   CMAKE_<LANG>_CREATE_STATIC_LIBRARY
3378       Rule variable to create a static library.
3379
3380       This is a rule variable that tells CMake how to create a static library
3381       for the language <LANG>.
3382
3383   CMAKE_<LANG>_FLAGS
3384       Flags for all build types.
3385
3386       <LANG> flags used regardless of the value of CMAKE_BUILD_TYPE.
3387
3388   CMAKE_<LANG>_FLAGS_<CONFIG>
3389       Flags for language <LANG> when building for the <CONFIG> configuration.
3390
3391   CMAKE_<LANG>_FLAGS_<CONFIG>_INIT
3392       Value used to initialize the  CMAKE_<LANG>_FLAGS_<CONFIG>  cache  entry
3393       the  first  time  a build tree is configured for language <LANG>.  This
3394       variable is meant to be set by a toolchain file.  CMake may prepend  or
3395       append  content  to the value based on the environment and target plat‐
3396       form.
3397
3398       See also CMAKE_<LANG>_FLAGS_INIT.
3399
3400   CMAKE_<LANG>_FLAGS_DEBUG
3401       This variable is the Debug variant of  the  CMAKE_<LANG>_FLAGS_<CONFIG>
3402       variable.
3403
3404   CMAKE_<LANG>_FLAGS_DEBUG_INIT
3405       This  variable  is  the  Debug  variant of the CMAKE_<LANG>_FLAGS_<CON‐
3406       FIG>_INIT variable.
3407
3408   CMAKE_<LANG>_FLAGS_INIT
3409       Value used to initialize the CMAKE_<LANG>_FLAGS cache entry  the  first
3410       time  a build tree is configured for language <LANG>.  This variable is
3411       meant to be set by a toolchain file.  CMake may prepend or append  con‐
3412       tent to the value based on the environment and target platform.
3413
3414       See  also  the  configuration-specific CMAKE_<LANG>_FLAGS_<CONFIG>_INIT
3415       variable.
3416
3417   CMAKE_<LANG>_FLAGS_MINSIZEREL
3418       This variable is the MinSizeRel variant of the CMAKE_<LANG>_FLAGS_<CON‐
3419       FIG> variable.
3420
3421   CMAKE_<LANG>_FLAGS_MINSIZEREL_INIT
3422       This variable is the MinSizeRel variant of the CMAKE_<LANG>_FLAGS_<CON‐
3423       FIG>_INIT variable.
3424
3425   CMAKE_<LANG>_FLAGS_RELEASE
3426       This variable is the Release variant of the CMAKE_<LANG>_FLAGS_<CONFIG>
3427       variable.
3428
3429   CMAKE_<LANG>_FLAGS_RELEASE_INIT
3430       This  variable  is  the Release variant of the CMAKE_<LANG>_FLAGS_<CON‐
3431       FIG>_INIT variable.
3432
3433   CMAKE_<LANG>_FLAGS_RELWITHDEBINFO
3434       This    variable    is    the    RelWithDebInfo    variant    of    the
3435       CMAKE_<LANG>_FLAGS_<CONFIG> variable.
3436
3437   CMAKE_<LANG>_FLAGS_RELWITHDEBINFO_INIT
3438       This    variable    is    the    RelWithDebInfo    variant    of    the
3439       CMAKE_<LANG>_FLAGS_<CONFIG>_INIT variable.
3440
3441   CMAKE_<LANG>_GHS_KERNEL_FLAGS_<CONFIG>
3442       GHS kernel flags for language <LANG> when  building  for  the  <CONFIG>
3443       configuration.
3444
3445   CMAKE_<LANG>_GHS_KERNEL_FLAGS_DEBUG
3446       This  variable  is  the  Debug  variant  of  the  CMAKE_<LANG>_GHS_KER‐
3447       NEL_FLAGS_<CONFIG> variable.
3448
3449   CMAKE_<LANG>_GHS_KERNEL_FLAGS_MINSIZEREL
3450       This variable is the MinSizeRel variant  of  the  CMAKE_<LANG>_GHS_KER‐
3451       NEL_FLAGS_<CONFIG> variable.
3452
3453   CMAKE_<LANG>_GHS_KERNEL_FLAGS_RELEASE
3454       This  variable  is  the  Release  variant  of the CMAKE_<LANG>_GHS_KER‐
3455       NEL_FLAGS_<CONFIG> variable.
3456
3457   CMAKE_<LANG>_GHS_KERNEL_FLAGS_RELWITHDEBINFO
3458       This    variable    is    the    RelWithDebInfo    variant    of    the
3459       CMAKE_<LANG>_GHS_KERNEL_FLAGS_<CONFIG> variable.
3460
3461   CMAKE_<LANG>_IGNORE_EXTENSIONS
3462       File extensions that should be ignored by the build.
3463
3464       This  is  a list of file extensions that may be part of a project for a
3465       given language but are not compiled.
3466
3467   CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES
3468       Directories implicitly searched by the compiler for header files.
3469
3470       CMake does not explicitly specify these directories on compiler command
3471       lines  for  language  <LANG>.  This prevents system include directories
3472       from being treated as user include directories on some compilers.
3473
3474   CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES
3475       Implicit linker search path detected for language <LANG>.
3476
3477       Compilers  typically  pass  directories  containing  language   runtime
3478       libraries  and  default library search paths when they invoke a linker.
3479       These paths are implicit linker search directories for  the  compiler’s
3480       language.   CMake automatically detects these directories for each lan‐
3481       guage and reports the results in this variable.
3482
3483       When a library in one of these directories is given  by  full  path  to
3484       target_link_libraries()  CMake  will generate the -l<name> form on link
3485       lines to ensure the linker searches its implicit  directories  for  the
3486       library.   Note  that some toolchains read implicit directories from an
3487       environment variable such as LIBRARY_PATH so keep its value  consistent
3488       when operating in a given build tree.
3489
3490   CMAKE_<LANG>_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES
3491       Implicit linker framework search path detected for language <LANG>.
3492
3493       These  paths  are  implicit linker framework search directories for the
3494       compiler’s language.  CMake automatically detects these directories for
3495       each language and reports the results in this variable.
3496
3497   CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES
3498       Implicit link libraries and flags detected for language <LANG>.
3499
3500       Compilers typically pass language runtime library names and other flags
3501       when they invoke a linker.  These flags are implicit link  options  for
3502       the  compiler’s  language.  CMake automatically detects these libraries
3503       and flags for each language and reports the results in this variable.
3504
3505   CMAKE_<LANG>_LIBRARY_ARCHITECTURE
3506       Target architecture library directory name detected for <LANG>.
3507
3508       If the <LANG> compiler passes to the  linker  an  architecture-specific
3509       system  library search directory such as <prefix>/lib/<arch> this vari‐
3510       able contains the <arch> name if/as detected by CMake.
3511
3512   CMAKE_<LANG>_LINKER_PREFERENCE
3513       Preference value for linker language selection.
3514
3515       The “linker language” for executable, shared library, and  module  tar‐
3516       gets  is  the  language  whose  compiler  will  invoke the linker.  The
3517       LINKER_LANGUAGE target property sets the language  explicitly.   Other‐
3518       wise,  the  linker  language  is  that whose linker preference value is
3519       highest among languages compiled and linked into the target.  See  also
3520       the CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES variable.
3521
3522   CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES
3523       True if CMAKE_<LANG>_LINKER_PREFERENCE propagates across targets.
3524
3525       This  is  used when CMake selects a linker language for a target.  Lan‐
3526       guages compiled directly into the target are always considered.  A lan‐
3527       guage compiled into static libraries linked by the target is considered
3528       if this variable is true.
3529
3530   CMAKE_<LANG>_LINK_EXECUTABLE
3531       Rule variable to link an executable.
3532
3533       Rule variable to link an executable for the given language.
3534
3535   CMAKE_<LANG>_OUTPUT_EXTENSION
3536       Extension for the output of a compile for a single file.
3537
3538       This is the extension for an object file for  the  given  <LANG>.   For
3539       example .obj for C on Windows.
3540
3541   CMAKE_<LANG>_PLATFORM_ID
3542       An internal variable subject to change.
3543
3544       This is used in determining the platform and is subject to change.
3545
3546   CMAKE_<LANG>_SIMULATE_ID
3547       Identification string of “simulated” compiler.
3548
3549       Some  compilers  simulate  other compilers to serve as drop-in replace‐
3550       ments.  When CMake detects such a compiler it  sets  this  variable  to
3551       what  would  have  been  the CMAKE_<LANG>_COMPILER_ID for the simulated
3552       compiler.
3553
3554   CMAKE_<LANG>_SIMULATE_VERSION
3555       Version string of “simulated” compiler.
3556
3557       Some compilers simulate other compilers to serve  as  drop-in  replace‐
3558       ments.   When  CMake  detects  such a compiler it sets this variable to
3559       what would have been the CMAKE_<LANG>_COMPILER_VERSION  for  the  simu‐
3560       lated compiler.
3561
3562   CMAKE_<LANG>_SIZEOF_DATA_PTR
3563       Size of pointer-to-data types for language <LANG>.
3564
3565       This  holds  the size (in bytes) of pointer-to-data types in the target
3566       platform ABI.  It is defined for languages C and CXX (C++).
3567
3568   CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS
3569       Extensions of source files for the given language.
3570
3571       This is the list of extensions for a given language’s source files.
3572
3573   CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES
3574       Include directories to be used for every source file compiled with  the
3575       <LANG>  compiler.   This  is  meant for specification of system include
3576       directories needed by the  language  for  the  current  platform.   The
3577       directories  always appear at the end of the include path passed to the
3578       compiler.
3579
3580       This variable should not be set by project code.  It is meant to be set
3581       by  CMake’s  platform information modules for the current toolchain, or
3582       by a toolchain file when used with CMAKE_TOOLCHAIN_FILE.
3583
3584       See also CMAKE_<LANG>_STANDARD_LIBRARIES.
3585
3586   CMAKE_<LANG>_STANDARD_LIBRARIES
3587       Libraries linked into every executable and shared  library  linked  for
3588       language  <LANG>.   This is meant for specification of system libraries
3589       needed by the language for the current platform.
3590
3591       This variable should not be set by project code.  It is meant to be set
3592       by  CMake’s  platform information modules for the current toolchain, or
3593       by a toolchain file when used with CMAKE_TOOLCHAIN_FILE.
3594
3595       See also CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES.
3596
3597   CMAKE_Swift_LANGUAGE_VERSION
3598       Set to the Swift language version number.  If not set, the legacy “2.3”
3599       version is assumed.
3600
3601   CMAKE_USER_MAKE_RULES_OVERRIDE_<LANG>
3602       Specify a CMake file that overrides platform information for <LANG>.
3603
3604       This  is  a language-specific version of CMAKE_USER_MAKE_RULES_OVERRIDE
3605       loaded only when enabling language <LANG>.
3606

VARIABLES FOR CTEST

3608   CTEST_BINARY_DIRECTORY
3609       Specify the CTest BuildDirectory setting in a ctest(1) dashboard client
3610       script.
3611
3612   CTEST_BUILD_COMMAND
3613       Specify  the  CTest  MakeCommand setting in a ctest(1) dashboard client
3614       script.
3615
3616   CTEST_BUILD_NAME
3617       Specify the CTest BuildName setting  in  a  ctest(1)  dashboard  client
3618       script.
3619
3620   CTEST_BZR_COMMAND
3621       Specify  the  CTest  BZRCommand  setting in a ctest(1) dashboard client
3622       script.
3623
3624   CTEST_BZR_UPDATE_OPTIONS
3625       Specify the CTest BZRUpdateOptions  setting  in  a  ctest(1)  dashboard
3626       client script.
3627
3628   CTEST_CHANGE_ID
3629       Specify  the  CTest  ChangeId  setting  in  a ctest(1) dashboard client
3630       script.
3631
3632       This setting allows CTest to  pass  arbitrary  information  about  this
3633       build  up  to CDash.  One use of this feature is to allow CDash to post
3634       comments on your pull request if anything goes wrong with your build.
3635
3636   CTEST_CHECKOUT_COMMAND
3637       Tell the ctest_start() command how to checkout or initialize the source
3638       directory in a ctest(1) dashboard client script.
3639
3640   CTEST_CONFIGURATION_TYPE
3641       Specify  the  CTest DefaultCTestConfigurationType setting in a ctest(1)
3642       dashboard client script.
3643
3644   CTEST_CONFIGURE_COMMAND
3645       Specify the CTest ConfigureCommand  setting  in  a  ctest(1)  dashboard
3646       client script.
3647
3648   CTEST_COVERAGE_COMMAND
3649       Specify  the  CTest  CoverageCommand  setting  in  a ctest(1) dashboard
3650       client script.
3651
3652   Cobertura
3653       Using Cobertura as the coverage  generation  within  your  multi-module
3654       Java project can generate a series of XML files.
3655
3656       The  Cobertura Coverage parser expects to read the coverage data from a
3657       single XML file which contains  the  coverage  data  for  all  modules.
3658       Cobertura  has  a program with the ability to merge given cobertura.ser
3659       files and then another program to generate a combined XML file from the
3660       previous  merged  file.   For command line testing, this can be done by
3661       hand prior to CTest looking for the coverage files. For script  builds,
3662       set  the  CTEST_COVERAGE_COMMAND variable to point to a file which will
3663       perform these same steps, such as a .sh or .bat file.
3664
3665          set(CTEST_COVERAGE_COMMAND .../run-coverage-and-consolidate.sh)
3666
3667       where the run-coverage-and-consolidate.sh script is perhaps created  by
3668       the configure_file() command and might contain the following code:
3669
3670          #!/usr/bin/env bash
3671          CoberturaFiles="$(find "/path/to/source" -name "cobertura.ser")"
3672          SourceDirs="$(find "/path/to/source" -name "java" -type d)"
3673          cobertura-merge --datafile coberturamerge.ser $CoberturaFiles
3674          cobertura-report --datafile coberturamerge.ser --destination . \
3675                           --format xml $SourceDirs
3676
3677       The  script  uses find to capture the paths to all of the cobertura.ser
3678       files found below the project’s source directory.  It keeps the list of
3679       files  and  supplies  it as an argument to the cobertura-merge program.
3680       The --datafile argument signifies where the result of the merge will be
3681       kept.
3682
3683       The  combined  coberturamerge.ser file is then used to generate the XML
3684       report using the cobertura-report program.   The  call  to  the  cober‐
3685       tura-report program requires some named arguments.
3686
3687       --datafila
3688              path to the merged .ser file
3689
3690       --destination
3691              path to put the output files(s)
3692
3693       --format
3694              file format to write output in: xml or html
3695
3696       The  rest  of  the  supplied arguments consist of the full paths to the
3697       /src/main/java directories of each module within the source tree. These
3698       directories are needed and should not be forgotten.
3699
3700   CTEST_COVERAGE_EXTRA_FLAGS
3701       Specify  the  CTest  CoverageExtraFlags setting in a ctest(1) dashboard
3702       client script.
3703
3704   CTEST_CURL_OPTIONS
3705       Specify the CTest CurlOptions setting in a  ctest(1)  dashboard  client
3706       script.
3707
3708   CTEST_CUSTOM_COVERAGE_EXCLUDE
3709       A  list  of  regular expressions which will be used to exclude files by
3710       their path from coverage output by the ctest_coverage() command.
3711
3712       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3713       See ctest_read_custom_files() documentation.
3714
3715   CTEST_CUSTOM_ERROR_EXCEPTION
3716       A  list  of  regular  expressions  which  will  be used to exclude when
3717       detecting error messages in build outputs by the ctest_test() command.
3718
3719       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3720       See ctest_read_custom_files() documentation.
3721
3722   CTEST_CUSTOM_ERROR_MATCH
3723       A  list  of regular expressions which will be used to detect error mes‐
3724       sages in build outputs by the ctest_test() command.
3725
3726       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3727       See ctest_read_custom_files() documentation.
3728
3729   CTEST_CUSTOM_ERROR_POST_CONTEXT
3730       The number of lines to include as context which follow an error message
3731       by the ctest_test() command. The default is 10.
3732
3733       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3734       See ctest_read_custom_files() documentation.
3735
3736   CTEST_CUSTOM_ERROR_PRE_CONTEXT
3737       The  number  of lines to include as context which precede an error mes‐
3738       sage by the ctest_test() command. The default is 10.
3739
3740       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3741       See ctest_read_custom_files() documentation.
3742
3743   CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE
3744       When  saving  a  failing  test’s  output,  this is the maximum size, in
3745       bytes, that will be collected by the ctest_test() command. Defaults  to
3746       307200 (300 KiB).
3747
3748       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3749       See ctest_read_custom_files() documentation.
3750
3751   CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS
3752       The maximum number of errors in a  single  build  step  which  will  be
3753       detected.   After this, the ctest_test() command will truncate the out‐
3754       put.  Defaults to 50.
3755
3756       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3757       See ctest_read_custom_files() documentation.
3758
3759   CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS
3760       The  maximum  number  of  warnings in a single build step which will be
3761       detected.  After this, the ctest_test() command will truncate the  out‐
3762       put.  Defaults to 50.
3763
3764       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3765       See ctest_read_custom_files() documentation.
3766
3767   CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE
3768       When saving a passing test’s output,  this  is  the  maximum  size,  in
3769       bytes,  that will be collected by the ctest_test() command. Defaults to
3770       1024 (1 KiB).
3771
3772       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3773       See ctest_read_custom_files() documentation.
3774
3775   CTEST_CUSTOM_MEMCHECK_IGNORE
3776       A  list  of  regular  expressions  to  use  to exclude tests during the
3777       ctest_memcheck() command.
3778
3779       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3780       See ctest_read_custom_files() documentation.
3781
3782   CTEST_CUSTOM_POST_MEMCHECK
3783       A list of commands to run at the end of the ctest_memcheck() command.
3784
3785       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3786       See ctest_read_custom_files() documentation.
3787
3788   CTEST_CUSTOM_POST_TEST
3789       A list of commands to run at the end of the ctest_test() command.
3790
3791       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3792       See ctest_read_custom_files() documentation.
3793
3794   CTEST_CUSTOM_PRE_MEMCHECK
3795       A list of commands to run at the start of the ctest_memcheck() command.
3796
3797       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3798       See ctest_read_custom_files() documentation.
3799
3800   CTEST_CUSTOM_PRE_TEST
3801       A list of commands to run at the start of the ctest_test() command.
3802
3803       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3804       See ctest_read_custom_files() documentation.
3805
3806   CTEST_CUSTOM_TEST_IGNORE
3807       A  list  of  regular  expressions  to  use  to exclude tests during the
3808       ctest_test() command.
3809
3810       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3811       See ctest_read_custom_files() documentation.
3812
3813   CTEST_CUSTOM_WARNING_EXCEPTION
3814       A  list  of  regular  expressions  which  will  be used to exclude when
3815       detecting warning messages in build outputs by  the  ctest_test()  com‐
3816       mand.
3817
3818       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3819       See ctest_read_custom_files() documentation.
3820
3821   CTEST_CUSTOM_WARNING_MATCH
3822       A list of regular expressions which will be used to detect warning mes‐
3823       sages in build outputs by the ctest_test() command.
3824
3825       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3826       See ctest_read_custom_files() documentation.
3827
3828   CTEST_CVS_CHECKOUT
3829       Deprecated.  Use CTEST_CHECKOUT_COMMAND instead.
3830
3831   CTEST_CVS_COMMAND
3832       Specify the CTest CVSCommand setting in  a  ctest(1)  dashboard  client
3833       script.
3834
3835   CTEST_CVS_UPDATE_OPTIONS
3836       Specify  the  CTest  CVSUpdateOptions  setting  in a ctest(1) dashboard
3837       client script.
3838
3839   CTEST_DROP_LOCATION
3840       Specify the CTest DropLocation setting in a ctest(1)  dashboard  client
3841       script.
3842
3843   CTEST_DROP_METHOD
3844       Specify  the  CTest  DropMethod  setting in a ctest(1) dashboard client
3845       script.
3846
3847   CTEST_DROP_SITE
3848       Specify the CTest DropSite  setting  in  a  ctest(1)  dashboard  client
3849       script.
3850
3851   CTEST_DROP_SITE_CDASH
3852       Specify  the  CTest  IsCDash  setting  in  a  ctest(1) dashboard client
3853       script.
3854
3855   CTEST_DROP_SITE_PASSWORD
3856       Specify the CTest DropSitePassword  setting  in  a  ctest(1)  dashboard
3857       client script.
3858
3859   CTEST_DROP_SITE_USER
3860       Specify  the  CTest DropSiteUser setting in a ctest(1) dashboard client
3861       script.
3862
3863   CTEST_EXTRA_COVERAGE_GLOB
3864       A list of regular expressions which will be used to  find  files  which
3865       should be covered by the ctest_coverage() command.
3866
3867       It is initialized by ctest(1), but may be edited in a CTestCustom file.
3868       See ctest_read_custom_files() documentation.
3869
3870   CTEST_GIT_COMMAND
3871       Specify the CTest GITCommand setting in  a  ctest(1)  dashboard  client
3872       script.
3873
3874   CTEST_GIT_INIT_SUBMODULES
3875       Specify  the  CTest  GITInitSubmodules  setting in a ctest(1) dashboard
3876       client script.
3877
3878   CTEST_GIT_UPDATE_CUSTOM
3879       Specify the CTest  GITUpdateCustom  setting  in  a  ctest(1)  dashboard
3880       client script.
3881
3882   CTEST_GIT_UPDATE_OPTIONS
3883       Specify  the  CTest  GITUpdateOptions  setting  in a ctest(1) dashboard
3884       client script.
3885
3886   CTEST_HG_COMMAND
3887       Specify the CTest HGCommand setting  in  a  ctest(1)  dashboard  client
3888       script.
3889
3890   CTEST_HG_UPDATE_OPTIONS
3891       Specify  the  CTest  HGUpdateOptions  setting  in  a ctest(1) dashboard
3892       client script.
3893
3894   CTEST_LABELS_FOR_SUBPROJECTS
3895       Specify the CTest LabelsForSubprojects setting in a ctest(1)  dashboard
3896       client script.
3897
3898   CTEST_MEMORYCHECK_COMMAND
3899       Specify  the  CTest  MemoryCheckCommand setting in a ctest(1) dashboard
3900       client script.
3901
3902   CTEST_MEMORYCHECK_COMMAND_OPTIONS
3903       Specify the CTest MemoryCheckCommandOptions setting in a ctest(1) dash‐
3904       board client script.
3905
3906   CTEST_MEMORYCHECK_SANITIZER_OPTIONS
3907       Specify  the  CTest  MemoryCheckSanitizerOptions  setting in a ctest(1)
3908       dashboard client script.
3909
3910   CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
3911       Specify the CTest  MemoryCheckSuppressionFile  setting  in  a  ctest(1)
3912       dashboard client script.
3913
3914   CTEST_MEMORYCHECK_TYPE
3915       Specify  the  CTest  MemoryCheckType  setting  in  a ctest(1) dashboard
3916       client script.  Valid values are Valgrind, Purify,  BoundsChecker,  and
3917       ThreadSanitizer,  AddressSanitizer, LeakSanitizer, MemorySanitizer, and
3918       UndefinedBehaviorSanitizer.
3919
3920   CTEST_NIGHTLY_START_TIME
3921       Specify the CTest NightlyStartTime  setting  in  a  ctest(1)  dashboard
3922       client script.
3923
3924   CTEST_P4_CLIENT
3925       Specify  the  CTest  P4Client  setting  in  a ctest(1) dashboard client
3926       script.
3927
3928   CTEST_P4_COMMAND
3929       Specify the CTest P4Command setting  in  a  ctest(1)  dashboard  client
3930       script.
3931
3932   CTEST_P4_OPTIONS
3933       Specify  the  CTest  P4Options  setting  in a ctest(1) dashboard client
3934       script.
3935
3936   CTEST_P4_UPDATE_OPTIONS
3937       Specify the CTest  P4UpdateOptions  setting  in  a  ctest(1)  dashboard
3938       client script.
3939
3940   CTEST_RUN_CURRENT_SCRIPT
3941       Setting  this  to  0  prevents  ctest(1)  from  being run again when it
3942       reaches the end of a script run by calling ctest -S.
3943
3944   CTEST_SCP_COMMAND
3945       Specify the CTest SCPCommand setting in  a  ctest(1)  dashboard  client
3946       script.
3947
3948   CTEST_SITE
3949       Specify the CTest Site setting in a ctest(1) dashboard client script.
3950
3951   CTEST_SOURCE_DIRECTORY
3952       Specify  the  CTest  SourceDirectory  setting  in  a ctest(1) dashboard
3953       client script.
3954
3955   CTEST_SVN_COMMAND
3956       Specify the CTest SVNCommand setting in  a  ctest(1)  dashboard  client
3957       script.
3958
3959   CTEST_SVN_OPTIONS
3960       Specify  the  CTest  SVNOptions  setting in a ctest(1) dashboard client
3961       script.
3962
3963   CTEST_SVN_UPDATE_OPTIONS
3964       Specify the CTest SVNUpdateOptions  setting  in  a  ctest(1)  dashboard
3965       client script.
3966
3967   CTEST_TEST_LOAD
3968       Specify the TestLoad setting in the CTest Test Step of a ctest(1) dash‐
3969       board client script.  This sets the default  value  for  the  TEST_LOAD
3970       option of the ctest_test() command.
3971
3972   CTEST_TEST_TIMEOUT
3973       Specify  the  CTest  TimeOut  setting  in  a  ctest(1) dashboard client
3974       script.
3975
3976   CTEST_TRIGGER_SITE
3977       Specify the CTest TriggerSite setting in a  ctest(1)  dashboard  client
3978       script.
3979
3980   CTEST_UPDATE_COMMAND
3981       Specify  the CTest UpdateCommand setting in a ctest(1) dashboard client
3982       script.
3983
3984   CTEST_UPDATE_OPTIONS
3985       Specify the CTest UpdateOptions setting in a ctest(1) dashboard  client
3986       script.
3987
3988   CTEST_UPDATE_VERSION_ONLY
3989       Specify  the  CTest  UpdateVersionOnly  setting in a ctest(1) dashboard
3990       client script.
3991
3992   CTEST_USE_LAUNCHERS
3993       Specify the CTest UseLaunchers setting in a ctest(1)  dashboard  client
3994       script.
3995

VARIABLES FOR CPACK

3997   CPACK_ABSOLUTE_DESTINATION_FILES
3998       List  of  files which have been installed using an ABSOLUTE DESTINATION
3999       path.
4000
4001       This variable is a Read-Only variable which is set internally by  CPack
4002       during  installation and before packaging using CMAKE_ABSOLUTE_DESTINA‐
4003       TION_FILES defined in cmake_install.cmake scripts.  The  value  can  be
4004       used  within  CPack  project configuration file and/or CPack<GEN>.cmake
4005       file of <GEN> generator.
4006
4007   CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY
4008       Boolean toggle to include/exclude top level directory (component case).
4009
4010       Similar usage as CPACK_INCLUDE_TOPLEVEL_DIRECTORY but for the component
4011       case.    See  CPACK_INCLUDE_TOPLEVEL_DIRECTORY  documentation  for  the
4012       detail.
4013
4014   CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION
4015       Ask CPack to error out as soon as a file with absolute INSTALL DESTINA‐
4016       TION is encountered.
4017
4018       The  fatal  error  is  emitted before the installation of the offending
4019       file takes place.  Some  CPack  generators,  like  NSIS,  enforce  this
4020       internally.     This    variable    triggers    the    definition    of
4021       CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION when CPack runs.
4022
4023   CPACK_INCLUDE_TOPLEVEL_DIRECTORY
4024       Boolean toggle to include/exclude top level directory.
4025
4026       When preparing a package CPack installs the item  under  the  so-called
4027       top  level  directory.  The purpose of is to include (set to 1 or ON or
4028       TRUE) the top level directory in the package or not (set to 0 or OFF or
4029       FALSE).
4030
4031       Each  CPack  generator  has a built-in default value for this variable.
4032       E.g.  Archive generators (ZIP, TGZ, …) includes the top  level  whereas
4033       RPM  or  DEB don’t.  The user may override the default value by setting
4034       this variable.
4035
4036       There is a similar variable  CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY
4037       which  may be used to override the behavior for the component packaging
4038       case which may have different default value for historical  (now  back‐
4039       ward compatibility) reason.
4040
4041   CPACK_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
4042       Default  permissions  for implicitly created directories during packag‐
4043       ing.
4044
4045       This  variable  serves  the  same  purpose  during  packaging  as   the
4046       CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS   variable   serves  during
4047       installation (e.g. make install).
4048
4049       If include(CPack) is used then by default this variable is set  to  the
4050       content of CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS.
4051
4052   CPACK_INSTALL_SCRIPT
4053       Extra CMake script provided by the user.
4054
4055       If  set  this  CMake  script will be executed by CPack during its local
4056       [CPack-private] installation which is done right before  packaging  the
4057       files.  The script is not called by e.g.: make install.
4058
4059   CPACK_PACKAGING_INSTALL_PREFIX
4060       The prefix used in the built package.
4061
4062       Each  CPack  generator  has  a default value (like /usr).  This default
4063       value may be overwritten from the CMakeLists.txt or the  cpack(1)  com‐
4064       mand line by setting an alternative value.  Example:
4065
4066          set(CPACK_PACKAGING_INSTALL_PREFIX "/opt")
4067
4068       This is not the same purpose as CMAKE_INSTALL_PREFIX which is used when
4069       installing from the build tree without building a package.
4070
4071   CPACK_SET_DESTDIR
4072       Boolean toggle to make CPack use DESTDIR mechanism when packaging.
4073
4074       DESTDIR means DESTination DIRectory.  It is commonly used  by  makefile
4075       users  in  order  to install software at non-default location.  It is a
4076       basic relocation mechanism that should not  be  used  on  Windows  (see
4077       CMAKE_INSTALL_PREFIX documentation).  It is usually invoked like this:
4078
4079          make DESTDIR=/home/john install
4080
4081       which  will  install the concerned software using the installation pre‐
4082       fix, e.g. /usr/local prepended with the  DESTDIR  value  which  finally
4083       gives  /home/john/usr/local.   When  preparing  a  package, CPack first
4084       installs the items to be packaged in a local (to the build tree) direc‐
4085       tory   by   using   the   same  DESTDIR  mechanism.   Nevertheless,  if
4086       CPACK_SET_DESTDIR is set then CPack will set DESTDIR before  doing  the
4087       local   install.   The  most  noticeable  difference  is  that  without
4088       CPACK_SET_DESTDIR, CPack uses CPACK_PACKAGING_INSTALL_PREFIX as a  pre‐
4089       fix    whereas    with    CPACK_SET_DESTDIR   set,   CPack   will   use
4090       CMAKE_INSTALL_PREFIX as a prefix.
4091
4092       Manually setting CPACK_SET_DESTDIR may help (or simply be necessary) if
4093       some  install rules uses absolute DESTINATION (see CMake install() com‐
4094       mand).  However, starting with CPack/CMake 2.8.3 RPM and DEB installers
4095       tries  to  handle  DESTDIR automatically so that it is seldom necessary
4096       for the user to set it.
4097
4098   CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION
4099       Ask CPack to warn each time a file with absolute INSTALL DESTINATION is
4100       encountered.
4101
4102       This   variable   triggers   the   definition   of  CMAKE_WARN_ON_ABSO‐
4103       LUTE_INSTALL_DESTINATION when CPack runs cmake_install.cmake scripts.
4104
4106       2000-2018 Kitware, Inc. and Contributors
4107
4108
4109
4110
41113.11.4                           May 13, 2019               CMAKE-VARIABLES(7)
Impressum