1CMAKE-VARIABLES(7) CMake CMAKE-VARIABLES(7)
2
3
4
6 cmake-variables - CMake Variables Reference
7
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
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
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
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
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
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
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)