1cmakevars(1)                General Commands Manual               cmakevars(1)
2
3
4

NAME

6       cmakevars - Reference of CMake variables.
7
8

VARIABLES THAT PROVIDE INFORMATION

10       variables  defined  by  cmake, that give information about the project,
11       and cmake
12
13
14       CMAKE_AR
15              Name of archiving tool for static libraries.
16
17              This specifies name of  the  program  that  creates  archive  or
18              static libraries.
19
20
21       CMAKE_BINARY_DIR
22              The path to the top level of the build tree.
23
24              This  is  the  full  path  to the top level of the current CMake
25              build tree. For an in-source build, this would be  the  same  as
26              CMAKE_SOURCE_DIR.
27
28
29       CMAKE_BUILD_TOOL
30              Tool used for the actual build process.
31
32              This variable is set to the program that will be needed to build
33              the output of CMake.   If the generator selected was Visual Stu‐
34              dio  6,  the  CMAKE_MAKE_PROGRAM  will be set to msdev, for Unix
35              makefiles it will be set to make or gmake, and for Visual Studio
36              7  it  set  to  devenv.  For Nmake Makefiles the value is nmake.
37              This can be useful for adding special flags and  commands  based
38              on the final build environment.
39
40
41       CMAKE_CACHEFILE_DIR
42              The directory with the CMakeCache.txt file.
43
44              This  is  the  full  path  to  the directory that has the CMake‐
45              Cache.txt file in it.  This is the same as CMAKE_BINARY_DIR.
46
47
48       CMAKE_CACHE_MAJOR_VERSION
49              Major version of CMake used to create the CMakeCache.txt file
50
51              This is stores the major version of CMake used to write a  CMake
52              cache  file.  It  is  only different when a different version of
53              CMake is run on a previously created cache file.
54
55
56       CMAKE_CACHE_MINOR_VERSION
57              Minor version of CMake used to create the CMakeCache.txt file
58
59              This is stores the minor version of CMake used to write a  CMake
60              cache  file.  It  is  only different when a different version of
61              CMake is run on a previously created cache file.
62
63
64       CMAKE_CACHE_PATCH_VERSION
65              Patch version of CMake used to create the CMakeCache.txt file
66
67              This is stores the patch version of CMake used to write a  CMake
68              cache  file.  It  is  only different when a different version of
69              CMake is run on a previously created cache file.
70
71
72       CMAKE_CFG_INTDIR
73              Build-time reference to per-configuration output subdirectory.
74
75              For native build systems supporting multiple  configurations  in
76              the build tree (such as Visual Studio and Xcode), the value is a
77              reference to a build-time variable specifying the  name  of  the
78              per-configuration  output  subdirectory.  On Makefile generators
79              this evaluates to "." because there is only one configuration in
80              a build tree.  Example values:
81
82
83                $(IntDir)        = Visual Studio 6
84                $(OutDir)        = Visual Studio 7, 8, 9
85                $(Configuration) = Visual Studio 10
86                $(CONFIGURATION) = Xcode
87                .                = Make-based tools
88
89              Since  these  values  are  evaluated by the native build system,
90              this variable is suitable only for use  in  command  lines  that
91              will be evaluated at build time.  Example of intended usage:
92
93
94                add_executable(mytool mytool.c)
95                add_custom_command(
96                  OUTPUT out.txt
97                  COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool
98                          ${CMAKE_CURRENT_SOURCE_DIR}/in.txt out.txt
99                  DEPENDS mytool in.txt
100                  )
101                add_custom_target(drive ALL DEPENDS out.txt)
102
103              Note  that CMAKE_CFG_INTDIR is no longer necessary for this pur‐
104              pose but has been left for compatibility with existing projects.
105              Instead  add_custom_command() recognizes executable target names
106              in      its      COMMAND      option,      so      "${CMAKE_CUR‐
107              RENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/mytool"  can be replaced by
108              just "mytool".
109
110
111              This variable is read-only.  Setting it is  undefined  behavior.
112              In  multi-configuration build systems the value of this variable
113              is passed as the value of preprocessor symbol "CMAKE_INTDIR"  to
114              the compilation of all source files.
115
116
117       CMAKE_COMMAND
118              The full path to the cmake executable.
119
120              This  is  the  full  path to the CMake executable cmake which is
121              useful from custom commands that want to use the cmake -E option
122              for portable system commands. (e.g. /usr/local/bin/cmake
123
124
125       CMAKE_CROSSCOMPILING
126              Is CMake currently cross compiling.
127
128              This  variable  will  be  set to true by CMake if CMake is cross
129              compiling. Specifically if the build platform is different  from
130              the target platform.
131
132
133       CMAKE_CTEST_COMMAND
134              Full path to ctest command installed with cmake.
135
136              This  is  the  full  path to the CTest executable ctest which is
137              useful from custom commands that  want   to  use  the  cmake  -E
138              option for portable system commands.
139
140
141       CMAKE_CURRENT_BINARY_DIR
142              The path to the binary directory currently being processed.
143
144              This  the  full  path  to  the build directory that is currently
145              being processed by cmake.  Each directory added by add_subdirec‐
146              tory will create a binary directory in the build tree, and as it
147              is being processed this variable  will  be  set.  For  in-source
148              builds this is the current source directory being processed.
149
150
151       CMAKE_CURRENT_LIST_DIR
152              Full directory of the listfile currently being processed.
153
154              As  CMake  processes the listfiles in your project this variable
155              will always be set to the directory where the listfile which  is
156              currently  being processed (CMAKE_CURRENT_LIST_FILE) is located.
157              The value has dynamic scope.  When CMake starts processing  com‐
158              mands  in  a  source file it sets this variable to the directory
159              where this file is located.  When CMake finishes processing com‐
160              mands  from  the file it restores the previous value.  Therefore
161              the value of the variable inside a  macro  or  function  is  the
162              directory of the file invoking the bottom-most entry on the call
163              stack, not the directory of the file  containing  the  macro  or
164              function definition.
165
166
167              See also CMAKE_CURRENT_LIST_FILE.
168
169
170       CMAKE_CURRENT_LIST_FILE
171              Full path to the listfile currently being processed.
172
173              As  CMake  processes the listfiles in your project this variable
174              will always be set to the one currently  being  processed.   The
175              value  has dynamic scope.  When CMake starts processing commands
176              in a source file it sets this variable to the  location  of  the
177              file.   When CMake finishes processing commands from the file it
178              restores the previous value.  Therefore the value of  the  vari‐
179              able  inside  a  macro or function is the file invoking the bot‐
180              tom-most entry on the call stack, not the  file  containing  the
181              macro or function definition.
182
183
184              See also CMAKE_PARENT_LIST_FILE.
185
186
187       CMAKE_CURRENT_LIST_LINE
188              The line number of the current file being processed.
189
190              This is the line number of the file currently being processed by
191              cmake.
192
193
194       CMAKE_CURRENT_SOURCE_DIR
195              The path to the source directory currently being processed.
196
197              This the full path to the source  directory  that  is  currently
198              being processed by cmake.
199
200
201       CMAKE_DL_LIBS
202              Name of library containing dlopen and dlcose.
203
204              The  name of the library that has dlopen and dlclose in it, usu‐
205              ally -ldl on most UNIX machines.
206
207
208       CMAKE_EDIT_COMMAND
209              Full path to cmake-gui or ccmake.
210
211              This is the full path to the CMake executable that  can  graphi‐
212              cally  edit the cache.  For example, cmake-gui, ccmake, or cmake
213              -i.
214
215
216       CMAKE_EXECUTABLE_SUFFIX
217              The suffix for executables on this platform.
218
219              The suffix to use for the end of an executable if any,  .exe  on
220              Windows.
221
222
223              CMAKE_EXECUTABLE_SUFFIX_<LANG>   overrides   this  for  language
224              <LANG>.
225
226
227       CMAKE_EXTRA_GENERATOR
228              The extra generator used to build the project.
229
230              When using the Eclipse, CodeBlocks or KDevelop generators, CMake
231              generates  Makefiles  (CMAKE_GENERATOR) and additionally project
232              files for the respective IDE. This IDE project file generator is
233              stored in CMAKE_EXTRA_GENERATOR (e.g. "Eclipse CDT4").
234
235
236       CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
237              Additional suffixes for shared libraries.
238
239              Extensions  for  shared  libraries  other than that specified by
240              CMAKE_SHARED_LIBRARY_SUFFIX, if any.  CMake uses this to  recog‐
241              nize  external shared library files during analysis of libraries
242              linked by a target.
243
244
245       CMAKE_GENERATOR
246              The generator used to build the project.
247
248              The name of the generator that is being  used  to  generate  the
249              build files.  (e.g. "Unix Makefiles", "Visual Studio 6", etc.)
250
251
252       CMAKE_HOME_DIRECTORY
253              Path to top of source tree.
254
255              This is the path to the top level of the source tree.
256
257
258       CMAKE_IMPORT_LIBRARY_PREFIX
259              The prefix for import libraries that you link to.
260
261              The  prefix  to use for the name of an import library if used on
262              this platform.
263
264
265              CMAKE_IMPORT_LIBRARY_PREFIX_<LANG> overrides this  for  language
266              <LANG>.
267
268
269       CMAKE_IMPORT_LIBRARY_SUFFIX
270              The suffix for import  libraries that you link to.
271
272              The  suffix  to  use for the end of an import library if used on
273              this platform.
274
275
276              CMAKE_IMPORT_LIBRARY_SUFFIX_<LANG> overrides this  for  language
277              <LANG>.
278
279
280       CMAKE_LINK_LIBRARY_SUFFIX
281              The suffix for libraries that you link to.
282
283              The suffix to use for the end of a library, .lib on Windows.
284
285
286       CMAKE_MAJOR_VERSION
287              The Major version of cmake (i.e. the 2 in 2.X.X)
288
289              This  specifies  the major version of the CMake executable being
290              run.
291
292
293       CMAKE_MAKE_PROGRAM
294              See CMAKE_BUILD_TOOL.
295
296              This  variable  is  around  for  backwards  compatibility,   see
297              CMAKE_BUILD_TOOL.
298
299
300       CMAKE_MINOR_VERSION
301              The Minor version of cmake (i.e. the 4 in X.4.X).
302
303              This  specifies  the minor version of the CMake executable being
304              run.
305
306
307       CMAKE_PARENT_LIST_FILE
308              Full path to the parent listfile of the one currently being pro‐
309              cessed.
310
311              As  CMake  processes the listfiles in your project this variable
312              will always be set to the  listfile  that  included  or  somehow
313              invoked  the  one currently being processed. See also CMAKE_CUR‐
314              RENT_LIST_FILE.
315
316
317       CMAKE_PATCH_VERSION
318              The patch version of cmake (i.e. the 3 in X.X.3).
319
320              This specifies the patch version of the CMake  executable  being
321              run.
322
323
324       CMAKE_PROJECT_NAME
325              The name of the current project.
326
327              This  specifies  name  of  the  current project from the closest
328              inherited PROJECT command.
329
330
331       CMAKE_RANLIB
332              Name of randomizing tool for static libraries.
333
334              This specifies name of the program that randomizes libraries  on
335              UNIX, not used on Windows, but may be present.
336
337
338       CMAKE_ROOT
339              Install directory for running cmake.
340
341              This  is  the install root for the running CMake and the Modules
342              directory can be found here. This is commonly used in this  for‐
343              mat: ${CMAKE_ROOT}/Modules
344
345
346       CMAKE_SHARED_LIBRARY_PREFIX
347              The prefix for shared libraries that you link to.
348
349              The prefix to use for the name of a shared library, lib on UNIX.
350
351
352              CMAKE_SHARED_LIBRARY_PREFIX_<LANG>  overrides  this for language
353              <LANG>.
354
355
356       CMAKE_SHARED_LIBRARY_SUFFIX
357              The suffix for shared libraries that you link to.
358
359              The suffix to use for the end of a shared library, .dll on  Win‐
360              dows.
361
362
363              CMAKE_SHARED_LIBRARY_SUFFIX_<LANG>  overrides  this for language
364              <LANG>.
365
366
367       CMAKE_SHARED_MODULE_PREFIX
368              The prefix for loadable modules that you link to.
369
370              The prefix to use for the name of  a  loadable  module  on  this
371              platform.
372
373
374              CMAKE_SHARED_MODULE_PREFIX_<LANG>  overrides  this  for language
375              <LANG>.
376
377
378       CMAKE_SHARED_MODULE_SUFFIX
379              The suffix for shared libraries that you link to.
380
381              The suffix to use for the end of a loadable module on this plat‐
382              form
383
384
385              CMAKE_SHARED_MODULE_SUFFIX_<LANG>  overrides  this  for language
386              <LANG>.
387
388
389       CMAKE_SIZEOF_VOID_P
390              Size of a void pointer.
391
392              This is set to the size of a pointer  on  the  machine,  and  is
393              determined by a try compile. If a 64 bit size is found, then the
394              library search path is modified to look  for  64  bit  libraries
395              first.
396
397
398       CMAKE_SKIP_RPATH
399              If true, do not add run time path information.
400
401              If  this is set to TRUE, then the rpath information is not added
402              to compiled executables.  The default is to add  rpath  informa‐
403              tion  if  the  platform supports it.This allows for easy running
404              from the build tree.
405
406
407       CMAKE_SOURCE_DIR
408              The path to the top level of the source tree.
409
410              This is the full path to the top  level  of  the  current  CMake
411              source  tree.  For an in-source build, this would be the same as
412              CMAKE_BINARY_DIR.
413
414
415       CMAKE_STANDARD_LIBRARIES
416              Libraries linked into every executable and shared library.
417
418              This is the list of libraries that are linked into all  executa‐
419              bles and libraries.
420
421
422       CMAKE_STATIC_LIBRARY_PREFIX
423              The prefix for static libraries that you link to.
424
425              The prefix to use for the name of a static library, lib on UNIX.
426
427
428              CMAKE_STATIC_LIBRARY_PREFIX_<LANG>  overrides  this for language
429              <LANG>.
430
431
432       CMAKE_STATIC_LIBRARY_SUFFIX
433              The suffix for static libraries that you link to.
434
435              The suffix to use for the end of a static library, .lib on  Win‐
436              dows.
437
438
439              CMAKE_STATIC_LIBRARY_SUFFIX_<LANG>  overrides  this for language
440              <LANG>.
441
442
443       CMAKE_TWEAK_VERSION
444              The tweak version of cmake (i.e. the 1 in X.X.X.1).
445
446              This specifies the tweak version of the CMake  executable  being
447              run.  Releases use tweak < 20000000 and development versions use
448              the date format CCYYMMDD for the tweak level.
449
450
451       CMAKE_USING_VC_FREE_TOOLS
452              True if free visual studio tools being used.
453
454              This is set to true if the compiler is Visual Studio free tools.
455
456
457       CMAKE_VERBOSE_MAKEFILE
458              Create verbose makefiles if on.
459
460              This variable defaults to false. You can set  this  variable  to
461              true to make CMake produce verbose makefiles that show each com‐
462              mand line as it is used.
463
464
465       CMAKE_VERSION
466              The full version of cmake in major.minor.patch[.tweak[-id]] for‐
467              mat.
468
469              This  specifies  the  full version of the CMake executable being
470              run.  This variable is defined by  versions  2.6.3  and  higher.
471              See    variables    CMAKE_MAJOR_VERSION,    CMAKE_MINOR_VERSION,
472              CMAKE_PATCH_VERSION, and CMAKE_TWEAK_VERSION for individual ver‐
473              sion  components.   The  [-id]  component appears in non-release
474              versions and may be arbitrary text.
475
476
477       PROJECT_BINARY_DIR
478              Full path to build directory for project.
479
480              This is the binary directory of the most recent PROJECT command.
481
482
483       PROJECT_NAME
484              Name of the project given to the project command.
485
486              This is the name given to the most recent PROJECT command.
487
488
489       PROJECT_SOURCE_DIR
490              Top level source directory for the current project.
491
492              This is the source directory of the most recent PROJECT command.
493
494
495       [Project name]_BINARY_DIR
496              Top level binary directory for the named project.
497
498              A variable is created with the name used in the PROJECT command,
499              and  is the binary directory for the project.   This can be use‐
500              ful when SUBDIR is used to connect several projects.
501
502
503       [Project name]_SOURCE_DIR
504              Top level source directory for the named project.
505
506              A variable is created with the name used in the PROJECT command,
507              and  is the source directory for the project.   This can be use‐
508              ful when add_subdirectory is used to connect several projects.
509
510

VARIABLES THAT CHANGE BEHAVIOR

512       BUILD_SHARED_LIBS
513              Global flag to cause add_library to create shared  libraries  if
514              on.
515
516              If  present  and true, this will cause all libraries to be built
517              shared unless the library  was  explicitly  added  as  a  static
518              library.   This variable is often added to projects as an OPTION
519              so that each user of a project can decide if they want to  build
520              the project using shared or static libraries.
521
522
523       CMAKE_BACKWARDS_COMPATIBILITY
524              Version of cmake required to build project
525
526              From  the  point of view of backwards compatibility, this speci‐
527              fies what version of CMake should be supported. By default  this
528              value  is  the version number of CMake that you are running. You
529              can set this to an older version of CMake to support  deprecated
530              commands  of  CMake  in  projects that were written to use older
531              versions of CMake. This can be set by the user  or  set  at  the
532              beginning of a CMakeLists file.
533
534
535       CMAKE_BUILD_TYPE
536              Specifies the build type for make based generators.
537
538              This specifies what build type will be built in this tree.  Pos‐
539              sible values are empty, Debug, Release, RelWithDebInfo and  Min‐
540              SizeRel.  This variable is only supported for make based genera‐
541              tors. If this variable is supported, then CMake will  also  pro‐
542              vide   initial   values   for   the   variables  with  the  name
543              CMAKE_C_FLAGS_[Debug|Release|RelWithDebInfo|MinSizeRel].     For
544              example,  if CMAKE_BUILD_TYPE is Debug, then CMAKE_C_FLAGS_DEBUG
545              will be added to the CMAKE_C_FLAGS.
546
547
548       CMAKE_COLOR_MAKEFILE
549              Enables color output when using the Makefile generator.
550
551              When enabled, the generated Makefiles will produce colored  out‐
552              put. Default is ON.
553
554
555       CMAKE_CONFIGURATION_TYPES
556              Specifies the available build types.
557
558              This specifies what build types will be available such as Debug,
559              Release, RelWithDebInfo etc. This  has  reasonable  defaults  on
560              most  platforms.  But  can  be  extended  to provide other build
561              types. See also CMAKE_BUILD_TYPE.
562
563
564       CMAKE_FIND_LIBRARY_PREFIXES
565              Prefixes to prepend when looking for libraries.
566
567              This specifies what prefixes to add to library  names  when  the
568              find_library  command  looks for libraries. On UNIX systems this
569              is typically lib, meaning that  when  trying  to  find  the  foo
570              library it will look for libfoo.
571
572
573       CMAKE_FIND_LIBRARY_SUFFIXES
574              Suffixes to append when looking for libraries.
575
576              This  specifies  what  suffixes to add to library names when the
577              find_library command looks for  libraries.  On  Windows  systems
578              this  is  typically  .lib  and .dll, meaning that when trying to
579              find the foo library it will look for foo.dll etc.
580
581
582       CMAKE_IGNORE_PATH
583              Path to be ignored by FIND_XXX() commands.
584
585              Specifies directories to be ignored by  searches  in  FIND_XXX()
586              commands  This  is  useful  in cross-compiled environments where
587              some system directories contain incompatible but possibly  link‐
588              able  libraries. For example, on cross-compiled cluster environ‐
589              ments, this allows  a  user  to  ignore  directories  containing
590              libraries  meant  for  the  front-end  machine that modules like
591              FindX11 (and others) would normally search. By default  this  is
592              empty;  it  is  intended  to  be  set  by the project. Note that
593              CMAKE_IGNORE_PATH takes a list of directory names, NOT a list of
594              prefixes.  If  you  want  to  ignore  paths under prefixes (bin,
595              include, lib, etc.), you'll need to specify them explicitly. See
596              also  CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH, CMAKE_INCLUDE_PATH,
597              CMAKE_PROGRAM_PATH.
598
599
600       CMAKE_INCLUDE_PATH
601              Path used for searching by FIND_FILE() and FIND_PATH().
602
603              Specifies a path which will be  used  both  by  FIND_FILE()  and
604              FIND_PATH().  Both  commands  will  check  each of the contained
605              directories for the existence of the  file  which  is  currently
606              searched.  By  default  it is empty, it is intended to be set by
607              the  project.  See  also  CMAKE_SYSTEM_INCLUDE_PATH,  CMAKE_PRE‐
608              FIX_PATH.
609
610
611       CMAKE_INSTALL_PREFIX
612              Install directory used by install.
613
614              If "make install" is invoked or INSTALL is built, this directory
615              is  pre-pended  onto  all  install  directories.  This  variable
616              defaults to /usr/local on UNIX and c:/Program Files on Windows.
617
618
619       CMAKE_LIBRARY_PATH
620              Path used for searching by FIND_LIBRARY().
621
622              Specifies   a   path  which  will  be  used  by  FIND_LIBRARY().
623              FIND_LIBRARY() will check each of the contained directories  for
624              the  existence  of  the  library which is currently searched. By
625              default it is empty, it is intended to be set  by  the  project.
626              See also CMAKE_SYSTEM_LIBRARY_PATH, CMAKE_PREFIX_PATH.
627
628
629       CMAKE_MFC_FLAG
630              Tell cmake to use MFC for an executable or dll.
631
632              This  can be set in a CMakeLists.txt file and will enable MFC in
633              the application.  It should be set to 1 for  static  the  static
634              MFC  library, and 2 for the shared MFC library.  This is used in
635              visual studio 6 and 7 project  files.    The  CMakeSetup  dialog
636              used MFC and the CMakeLists.txt looks like this:
637
638
639              add_definitions(-D_AFXDLL)
640
641
642              set(CMAKE_MFC_FLAG 2)
643
644
645              add_executable(CMakeSetup WIN32 ${SRCS})
646
647
648
649       CMAKE_MODULE_PATH
650              List of directories to search for CMake modules.
651
652              Commands  like  include() and find_package() search for files in
653              directories listed by this variable before checking the  default
654              modules that come with CMake.
655
656
657       CMAKE_NOT_USING_CONFIG_FLAGS
658              Skip _BUILD_TYPE flags if true.
659
660              This is an internal flag used by the generators in CMake to tell
661              CMake to skip the _BUILD_TYPE flags.
662
663
664       CMAKE_POLICY_DEFAULT_CMP<NNNN>
665              Default for CMake Policy CMP<NNNN> when  it  is  otherwise  left
666              unset.
667
668              Commands  cmake_minimum_required(VERSION)  and cmake_policy(VER‐
669              SION) by default leave policies introduced after the given  ver‐
670              sion unset.  Set CMAKE_POLICY_DEFAULT_CMP<NNNN> to OLD or NEW to
671              specify the default for policy CMP<NNNN>, where  <NNNN>  is  the
672              policy number.
673
674
675              This  variable should not be set by a project in CMake code; use
676              cmake_policy(SET) instead.  Users running  CMake  may  set  this
677              variable      in      the      cache      (e.g.     -DCMAKE_POL‐
678              ICY_DEFAULT_CMP<NNNN>=<OLD|NEW>) to set a policy  not  otherwise
679              set  by the project.  Set to OLD to quiet a policy warning while
680              using old behavior or to NEW to try building  the  project  with
681              new behavior.
682
683
684       CMAKE_PREFIX_PATH
685              Path used for searching by FIND_XXX(), with appropriate suffixes
686              added.
687
688              Specifies a path which will be used by the FIND_XXX()  commands.
689              It  contains  the  "base"  directories,  the FIND_XXX() commands
690              append appropriate subdirectories to the  base  directories.  So
691              FIND_PROGRAM() adds /bin to each of the directories in the path,
692              FIND_LIBRARY() appends /lib to  each  of  the  directories,  and
693              FIND_PATH()  and  FIND_FILE() append /include . By default it is
694              empty, it is intended  to  be  set  by  the  project.  See  also
695              CMAKE_SYSTEM_PREFIX_PATH,                    CMAKE_INCLUDE_PATH,
696              CMAKE_LIBRARY_PATH, CMAKE_PROGRAM_PATH.
697
698
699       CMAKE_PROGRAM_PATH
700              Path used for searching by FIND_PROGRAM().
701
702              Specifies a path which will be used by FIND_PROGRAM(). FIND_PRO‐
703              GRAM()  will  check  each  of  the contained directories for the
704              existence of the program which is currently searched. By default
705              it  is  empty, it is intended to be set by the project. See also
706              CMAKE_SYSTEM_PROGRAM_PATH,  CMAKE_PREFIX_PATH.
707
708
709       CMAKE_SKIP_INSTALL_ALL_DEPENDENCY
710              Don't make the install target depend on the all target.
711
712              By default, the "install" target depends on  the  "all"  target.
713              This  has  the  effect,  that  when "make install" is invoked or
714              INSTALL is built, first the "all"  target  is  built,  then  the
715              installation starts. If CMAKE_SKIP_INSTALL_ALL_DEPENDENCY is set
716              to TRUE, this dependency is not  created,  so  the  installation
717              process  will  start  immediately,  independent from whether the
718              project has been completely built or not.
719
720
721       CMAKE_SYSTEM_IGNORE_PATH
722              Path to be ignored by FIND_XXX() commands.
723
724              Specifies directories to be ignored by  searches  in  FIND_XXX()
725              commands  This  is  useful  in cross-compiled environments where
726              some system directories contain incompatible but possibly  link‐
727              able  libraries. For example, on cross-compiled cluster environ‐
728              ments, this allows  a  user  to  ignore  directories  containing
729              libraries  meant  for  the  front-end  machine that modules like
730              FindX11 (and others) would normally search. By default this con‐
731              tains a list of directories containing incompatible binaries for
732              the host system. See also  CMAKE_SYSTEM_PREFIX_PATH,  CMAKE_SYS‐
733              TEM_LIBRARY_PATH,   CMAKE_SYSTEM_INCLUDE_PATH,   and  CMAKE_SYS‐
734              TEM_PROGRAM_PATH.
735
736
737       CMAKE_SYSTEM_INCLUDE_PATH
738              Path used for searching by FIND_FILE() and FIND_PATH().
739
740              Specifies a path which will be  used  both  by  FIND_FILE()  and
741              FIND_PATH().  Both  commands  will  check  each of the contained
742              directories for the existence of the  file  which  is  currently
743              searched.  By  default  it contains the standard directories for
744              the current system. It is NOT intended to  be  modified  by  the
745              project,  use  CMAKE_INCLUDE_PATH  for this. See also CMAKE_SYS‐
746              TEM_PREFIX_PATH.
747
748
749       CMAKE_SYSTEM_LIBRARY_PATH
750              Path used for searching by FIND_LIBRARY().
751
752              Specifies  a  path  which  will  be  used   by   FIND_LIBRARY().
753              FIND_LIBRARY()  will check each of the contained directories for
754              the existence of the library which  is  currently  searched.  By
755              default  it  contains  the  standard directories for the current
756              system. It is NOT intended to be modified by  the  project,  use
757              CMAKE_LIBRARY_PATH for this. See also CMAKE_SYSTEM_PREFIX_PATH.
758
759
760       CMAKE_SYSTEM_PREFIX_PATH
761              Path used for searching by FIND_XXX(), with appropriate suffixes
762              added.
763
764              Specifies a path which will be used by the FIND_XXX()  commands.
765              It  contains  the  "base"  directories,  the FIND_XXX() commands
766              append appropriate subdirectories to the  base  directories.  So
767              FIND_PROGRAM() adds /bin to each of the directories in the path,
768              FIND_LIBRARY() appends /lib to  each  of  the  directories,  and
769              FIND_PATH()  and  FIND_FILE()  append /include . By default this
770              contains the standard directories for the current system. It  is
771              NOT  intended  to  be  modified  by  the project, use CMAKE_PRE‐
772              FIX_PATH   for   this.   See   also   CMAKE_SYSTEM_INCLUDE_PATH,
773              CMAKE_SYSTEM_LIBRARY_PATH,     CMAKE_SYSTEM_PROGRAM_PATH,    and
774              CMAKE_SYSTEM_IGNORE_PATH.
775
776
777       CMAKE_SYSTEM_PROGRAM_PATH
778              Path used for searching by FIND_PROGRAM().
779
780              Specifies a path which will be used by FIND_PROGRAM(). FIND_PRO‐
781              GRAM()  will  check  each  of  the contained directories for the
782              existence of the program which is currently searched. By default
783              it  contains the standard directories for the current system. It
784              is NOT intended to be modified by the  project,  use  CMAKE_PRO‐
785              GRAM_PATH for this. See also CMAKE_SYSTEM_PREFIX_PATH.
786
787
788       CMAKE_USER_MAKE_RULES_OVERRIDE
789              Specify a CMake file that overrides platform information.
790
791              CMake  loads  the specified file while enabling support for each
792              language from either the  project()  or  enable_language()  com‐
793              mands.  It is loaded after CMake's builtin compiler and platform
794              information modules have been loaded but before the  information
795              is  used.   The  file  may set platform information variables to
796              override CMake's defaults.
797
798
799              This feature is intended for use only in overriding  information
800              variables  that  must  be set before CMake builds its first test
801              project to check that the compiler for  a  language  works.   It
802              should  not  be  used  to  load  a  file  in cases that a normal
803              include() will work.  Use it only as a last resort for  behavior
804              that cannot be achieved any other way.  For example, one may set
805              CMAKE_C_FLAGS_INIT to change the default value used to  initial‐
806              ize CMAKE_C_FLAGS before it is cached.  The override file should
807              NOT be used to set anything that could be  set  after  languages
808              are  enabled, such as variables like CMAKE_RUNTIME_OUTPUT_DIREC‐
809              TORY that affect the placement of binaries.  Information set  in
810              the file will be used for try_compile and try_run builds too.
811
812

VARIABLES THAT DESCRIBE THE SYSTEM

814       APPLE  True if running on Mac OSX.
815
816              Set to true on Mac OSX.
817
818
819       BORLAND
820              True of the borland compiler is being used.
821
822              This is set to true if the Borland compiler is being used.
823
824
825       CMAKE_CL_64
826              Using the 64 bit compiler from Microsoft
827
828              Set to true when using the 64 bit cl compiler from Microsoft.
829
830
831       CMAKE_COMPILER_2005
832              Using the Visual Studio 2005 compiler from Microsoft
833
834              Set  to true when using the Visual Studio 2005 compiler from Mi‐
835              crosoft.
836
837
838       CMAKE_HOST_APPLE
839              True for Apple OSXoperating systems.
840
841              Set to true when the host system is Apple OSX.
842
843
844       CMAKE_HOST_SYSTEM
845              Name of system cmake is being run on.
846
847              The same as CMAKE_SYSTEM but for the host system instead of  the
848              target system when cross compiling.
849
850
851       CMAKE_HOST_SYSTEM_NAME
852              Name of the OS CMake is running on.
853
854              The same as CMAKE_SYSTEM_NAME but for the host system instead of
855              the target system when cross compiling.
856
857
858       CMAKE_HOST_SYSTEM_PROCESSOR
859              The name of the CPU CMake is running on.
860
861              The same as  CMAKE_SYSTEM_PROCESSOR  but  for  the  host  system
862              instead of the target system when cross compiling.
863
864
865       CMAKE_HOST_SYSTEM_VERSION
866              OS version CMake is running on.
867
868              The same as CMAKE_SYSTEM_VERSION but for the host system instead
869              of the target system when cross compiling.
870
871
872       CMAKE_HOST_UNIX
873              True for UNIX and UNIX like operating systems.
874
875              Set to true when the host system is  UNIX  or  UNIX  like  (i.e.
876              APPLE and CYGWIN).
877
878
879       CMAKE_HOST_WIN32
880              True on windows systems, including win64.
881
882              Set to true when the host system is Windows and on cygwin.
883
884
885       CMAKE_OBJECT_PATH_MAX
886              Maximum  object  file  full-path  length allowed by native build
887              tools.
888
889              CMake computes for every source file an object file name that is
890              unique  to the source file and deterministic with respect to the
891              full path to the source file.  This allows multiple source files
892              in  a  target  to  share  the same name if they lie in different
893              directories without rebuilding when one  is  added  or  removed.
894              However, it can produce long full paths in a few cases, so CMake
895              shortens the path using a hashing scheme when the full  path  to
896              an  object file exceeds a limit.  CMake has a built-in limit for
897              each platform that is sufficient  for  common  tools,  but  some
898              native  tools  may have a lower limit.  This variable may be set
899              to specify the limit explicitly.  The value must be  an  integer
900              no less than 128.
901
902
903       CMAKE_SYSTEM
904              Name of system cmake is compiling for.
905
906              This   variable   is  the  composite  of  CMAKE_SYSTEM_NAME  and
907              CMAKE_SYSTEM_VERSION,       like        this        ${CMAKE_SYS‐
908              TEM_NAME}-${CMAKE_SYSTEM_VERSION}.  If  CMAKE_SYSTEM_VERSION  is
909              not set, then CMAKE_SYSTEM is the same as CMAKE_SYSTEM_NAME.
910
911
912       CMAKE_SYSTEM_NAME
913              Name of the OS CMake is building for.
914
915              This is the name of the operating system on which CMake is  tar‐
916              geting.    On systems that have the uname command, this variable
917              is set to the output of uname -s.  Linux, Windows,   and  Darwin
918              for  Mac  OSX  are  the values found  on the big three operating
919              systems.
920
921
922       CMAKE_SYSTEM_PROCESSOR
923              The name of the CPU CMake is building for.
924
925              On systems that support uname, this variable is set to the  out‐
926              put  of uname -p, on windows it is set to the value of the envi‐
927              ronment variable PROCESSOR_ARCHITECTURE
928
929
930       CMAKE_SYSTEM_VERSION
931              OS version CMake is building for.
932
933              A numeric version string for the system, on systems that support
934              uname,  this variable is set to the output of uname -r. On other
935              systems this is set to major-minor version numbers.
936
937
938       CYGWIN True for cygwin.
939
940              Set to true when using CYGWIN.
941
942
943       MSVC   True when using Microsoft Visual C
944
945              Set to true when the compiler is some version of Microsoft  Vis‐
946              ual C.
947
948
949       MSVC80 True when using Microsoft Visual C 8.0
950
951              Set to true when the compiler is version 8.0 of Microsoft Visual
952              C.
953
954
955       MSVC_IDE
956              True when using the Microsoft Visual C IDE
957
958              Set to true when the target platform is the Microsoft  Visual  C
959              IDE, as opposed to the command line compiler.
960
961
962       MSVC_VERSION
963              The version of Microsoft Visual C/C++ being used if any.
964
965              Known version numbers are:
966
967
968                1200 = VS  6.0
969                1300 = VS  7.0
970                1310 = VS  7.1
971                1400 = VS  8.0
972                1500 = VS  9.0
973                1600 = VS 10.0
974
975
976       UNIX   True for UNIX and UNIX like operating systems.
977
978              Set  to  true  when the target system is UNIX or UNIX like (i.e.
979              APPLE and CYGWIN).
980
981
982       WIN32  True on windows systems, including win64.
983
984              Set to true when the target system is Windows and on cygwin.
985
986
987       XCODE_VERSION
988              Version of Xcode (Xcode generator only).
989
990              Under the Xcode generator, this is the version of Xcode as spec‐
991              ified in "Xcode.app/Contents/version.plist" (such as "3.1.2").
992
993

VARIABLES THAT CONTROL THE BUILD

995       CMAKE_<CONFIG>_POSTFIX
996              Default filename postfix for libraries under configuration <CON‐
997              FIG>.
998
999              When a non-executable target  is  created  its  <CONFIG>_POSTFIX
1000              target  property  is initialized with the value of this variable
1001              if it is set.
1002
1003
1004       CMAKE_ARCHIVE_OUTPUT_DIRECTORY
1005              Where to put all the ARCHIVE targets when built.
1006
1007              This variable is used to initialize the ARCHIVE_OUTPUT_DIRECTORY
1008              property  on all the targets. See that target property for addi‐
1009              tional information.
1010
1011
1012       CMAKE_BUILD_WITH_INSTALL_RPATH
1013              Use the install path for the RPATH
1014
1015              Normally CMake uses the build tree for the RPATH  when  building
1016              executables  etc on systems that use RPATH. When the software is
1017              installed the executables etc are relinked by CMake to have  the
1018              install RPATH. If this variable is set to true then the software
1019              is always built with the install path for the RPATH and does not
1020              need to be relinked when installed.
1021
1022
1023       CMAKE_DEBUG_POSTFIX
1024              See variable CMAKE_<CONFIG>_POSTFIX.
1025
1026              This  variable is a special case of the more-general CMAKE_<CON‐
1027              FIG>_POSTFIX variable for the DEBUG configuration.
1028
1029
1030       CMAKE_EXE_LINKER_FLAGS
1031              Linker flags used to create executables.
1032
1033              Flags used by the linker when creating an executable.
1034
1035
1036       CMAKE_EXE_LINKER_FLAGS_[CMAKE_BUILD_TYPE]
1037              Flag used when linking an executable.
1038
1039              Same as CMAKE_C_FLAGS_* but used by  the  linker  when  creating
1040              executables.
1041
1042
1043       CMAKE_Fortran_MODULE_DIRECTORY
1044              Fortran module output directory.
1045
1046              This variable is used to initialize the Fortran_MODULE_DIRECTORY
1047              property on all the targets. See that target property for  addi‐
1048              tional information.
1049
1050
1051       CMAKE_INCLUDE_CURRENT_DIR
1052              Automatically  add  the current source- and build directories to
1053              the include path.
1054
1055              If this variable is enabled, CMake automatically  adds  in  each
1056              directory     ${CMAKE_CURRENT_SOURCE_DIR}    and    ${CMAKE_CUR‐
1057              RENT_BINARY_DIR} to the include path for this  directory.  These
1058              additional  include  directories do not propagate down to subdi‐
1059              rectories. This is useful mainly for out-of-source builds, where
1060              files  generated  into  the  build  tree  are  included by files
1061              located in the source tree.
1062
1063
1064              By default CMAKE_INCLUDE_CURRENT_DIR is OFF.
1065
1066
1067       CMAKE_INSTALL_NAME_DIR
1068              Mac OSX directory name for installed targets.
1069
1070              CMAKE_INSTALL_NAME_DIR    is    used    to    initialize     the
1071              INSTALL_NAME_DIR  property on all targets. See that target prop‐
1072              erty for more information.
1073
1074
1075       CMAKE_INSTALL_RPATH
1076              The rpath to use for installed targets.
1077
1078              A semicolon-separated  list  specifying  the  rpath  to  use  in
1079              installed  targets (for platforms that support it). This is used
1080              to initialize the target property INSTALL_RPATH for all targets.
1081
1082
1083       CMAKE_INSTALL_RPATH_USE_LINK_PATH
1084              Add paths to linker search and installed rpath.
1085
1086              CMAKE_INSTALL_RPATH_USE_LINK_PATH is a boolean that  if  set  to
1087              true  will append directories in the linker search path and out‐
1088              side the project to the INSTALL_RPATH. This is used to  initial‐
1089              ize the target property INSTALL_RPATH_USE_LINK_PATH for all tar‐
1090              gets.
1091
1092
1093       CMAKE_LIBRARY_OUTPUT_DIRECTORY
1094              Where to put all the LIBRARY targets when built.
1095
1096              This variable is used to initialize the LIBRARY_OUTPUT_DIRECTORY
1097              property  on all the targets. See that target property for addi‐
1098              tional information.
1099
1100
1101       CMAKE_LIBRARY_PATH_FLAG
1102              The flag used to add a library search path to a compiler.
1103
1104              The flag used to specify a library directory to the compiler. On
1105              most compilers this is "-L".
1106
1107
1108       CMAKE_LINK_DEF_FILE_FLAG
1109              Linker flag used to specify a .def file for dll creation.
1110
1111              The flag used to add a .def file when creating a dll on Windows,
1112              this is only defined on Windows.
1113
1114
1115       CMAKE_LINK_LIBRARY_FILE_FLAG
1116              Flag used to link a library specified by a path to its file.
1117
1118              The flag used before a library file path is given to the linker.
1119              This is needed only on very few platforms.
1120
1121
1122       CMAKE_LINK_LIBRARY_FLAG
1123              Flag used to link a library into an executable.
1124
1125              The flag used to specify a library to link to an executable.  On
1126              most compilers this is "-l".
1127
1128
1129       CMAKE_NO_BUILTIN_CHRPATH
1130              Do not use the builtin ELF editor to fix RPATHs on installation.
1131
1132              When an ELF binary needs to have a different RPATH after instal‐
1133              lation than it does in the build tree, CMake uses a builtin edi‐
1134              tor to change the RPATH in the installed copy.  If this variable
1135              is  set to true then CMake will relink the binary before instal‐
1136              lation instead of using its builtin editor.
1137
1138
1139       CMAKE_RUNTIME_OUTPUT_DIRECTORY
1140              Where to put all the RUNTIME targets when built.
1141
1142              This variable is used to initialize the RUNTIME_OUTPUT_DIRECTORY
1143              property  on all the targets. See that target property for addi‐
1144              tional information.
1145
1146
1147       CMAKE_SKIP_BUILD_RPATH
1148              Do not include RPATHs in the build tree.
1149
1150              Normally CMake uses the build tree for the RPATH  when  building
1151              executables  etc on systems that use RPATH. When the software is
1152              installed the executables etc are relinked by CMake to have  the
1153              install RPATH. If this variable is set to true then the software
1154              is always built with no RPATH.
1155
1156
1157       CMAKE_TRY_COMPILE_CONFIGURATION
1158              Build configuration used for try_compile and try_run projects.
1159
1160              Projects  built  by  try_compile  and  try_run  are  built  syn‐
1161              chronously  during  the  CMake  configuration step.  Therefore a
1162              specific build configuration must be chosen even if  the  gener‐
1163              ated build system supports multiple configurations.
1164
1165
1166       CMAKE_USE_RELATIVE_PATHS
1167              Use relative paths (May not work!).
1168
1169              If  this  is set to TRUE, then the CMake will use relative paths
1170              between the source and binary tree. This option  does  not  work
1171              for  more complicated projects, and relative paths are used when
1172              possible.  In general, it is not possible to move  CMake  gener‐
1173              ated  makefiles  to a different location regardless of the value
1174              of this variable.
1175
1176
1177       EXECUTABLE_OUTPUT_PATH
1178              Old executable location variable.
1179
1180              The target  property  RUNTIME_OUTPUT_DIRECTORY  supercedes  this
1181              variable for a target if it is set.  Executable targets are oth‐
1182              erwise placed in this directory.
1183
1184
1185       LIBRARY_OUTPUT_PATH
1186              Old library location variable.
1187
1188              The  target  properties  ARCHIVE_OUTPUT_DIRECTORY,  LIBRARY_OUT‐
1189              PUT_DIRECTORY, and RUNTIME_OUTPUT_DIRECTORY supercede this vari‐
1190              able for a target if they are set.  Library targets  are  other‐
1191              wise placed in this directory.
1192
1193

VARIABLES FOR LANGUAGES

1195       CMAKE_<LANG>_ARCHIVE_APPEND
1196              Rule variable to append to a static archive.
1197
1198              This  is  a  rule  variable  that tells CMake how to append to a
1199              static archive.   It  is  used  in  place  of  CMAKE_<LANG>_CRE‐
1200              ATE_STATIC_LIBRARY  on  some platforms in order to support large
1201              object  counts.   See   also   CMAKE_<LANG>_ARCHIVE_CREATE   and
1202              CMAKE_<LANG>_ARCHIVE_FINISH.
1203
1204
1205       CMAKE_<LANG>_ARCHIVE_CREATE
1206              Rule variable to create a new static archive.
1207
1208              This  is a rule variable that tells CMake how to create a static
1209              archive.    It   is   used   in   place   of   CMAKE_<LANG>_CRE‐
1210              ATE_STATIC_LIBRARY  on  some platforms in order to support large
1211              object  counts.   See   also   CMAKE_<LANG>_ARCHIVE_APPEND   and
1212              CMAKE_<LANG>_ARCHIVE_FINISH.
1213
1214
1215       CMAKE_<LANG>_ARCHIVE_FINISH
1216              Rule variable to finish an existing static archive.
1217
1218              This  is a rule variable that tells CMake how to finish a static
1219              archive.    It   is   used   in   place   of   CMAKE_<LANG>_CRE‐
1220              ATE_STATIC_LIBRARY  on  some platforms in order to support large
1221              object  counts.   See   also   CMAKE_<LANG>_ARCHIVE_CREATE   and
1222              CMAKE_<LANG>_ARCHIVE_APPEND.
1223
1224
1225       CMAKE_<LANG>_COMPILER
1226              The full path to the compiler for LANG.
1227
1228              This  is  the  command that will be used as the <LANG> compiler.
1229              Once set, you can not change this variable.
1230
1231
1232       CMAKE_<LANG>_COMPILER_ABI
1233              An internal variable subject to change.
1234
1235              This is used in determining the compiler ABI and is  subject  to
1236              change.
1237
1238
1239       CMAKE_<LANG>_COMPILER_ID
1240              An internal variable subject to change.
1241
1242              This  is  used  in  determining  the  compiler and is subject to
1243              change.
1244
1245
1246       CMAKE_<LANG>_COMPILER_LOADED
1247              Defined to true if the language is enabled.
1248
1249              When language <LANG> is  enabled  by  project()  or  enable_lan‐
1250              guage() this variable is defined to 1.
1251
1252
1253       CMAKE_<LANG>_COMPILE_OBJECT
1254              Rule variable to compile a single object file.
1255
1256              This is a rule variable that tells CMake how to compile a single
1257              object file for for the language <LANG>.
1258
1259
1260       CMAKE_<LANG>_CREATE_SHARED_LIBRARY
1261              Rule variable to create a shared library.
1262
1263              This is a rule variable that tells CMake how to create a  shared
1264              library for the language <LANG>.
1265
1266
1267       CMAKE_<LANG>_CREATE_SHARED_MODULE
1268              Rule variable to create a shared module.
1269
1270              This  is a rule variable that tells CMake how to create a shared
1271              library for the language <LANG>.
1272
1273
1274       CMAKE_<LANG>_CREATE_STATIC_LIBRARY
1275              Rule variable to create a static library.
1276
1277              This is a rule variable that tells CMake how to create a  static
1278              library for the language <LANG>.
1279
1280
1281       CMAKE_<LANG>_FLAGS_DEBUG
1282              Flags for Debug build type or configuration.
1283
1284              <LANG> flags used when CMAKE_BUILD_TYPE is Debug.
1285
1286
1287       CMAKE_<LANG>_FLAGS_MINSIZEREL
1288              Flags for MinSizeRel build type or configuration.
1289
1290              <LANG>  flags used when CMAKE_BUILD_TYPE is MinSizeRel.Short for
1291              minimum size release.
1292
1293
1294       CMAKE_<LANG>_FLAGS_RELEASE
1295              Flags for Release build type or configuration.
1296
1297              <LANG> flags used when CMAKE_BUILD_TYPE is Release
1298
1299
1300       CMAKE_<LANG>_FLAGS_RELWITHDEBINFO
1301              Flags for RelWithDebInfo type or configuration.
1302
1303              <LANG> flags used when CMAKE_BUILD_TYPE is RelWithDebInfo. Short
1304              for Release With Debug Information.
1305
1306
1307       CMAKE_<LANG>_IGNORE_EXTENSIONS
1308              File extensions that should be ignored by the build.
1309
1310              This  is a list of file extensions that may be part of a project
1311              for a given language but are not compiled.
1312
1313
1314       CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES
1315              Directories implicitly  searched  by  the  compiler  for  header
1316              files.
1317
1318              CMake  does not explicitly specify these directories on compiler
1319              command lines for language <LANG>.  This prevents system include
1320              directories  from  being  treated as user include directories on
1321              some compilers.
1322
1323
1324       CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES
1325              Implicit linker search path detected for language <LANG>.
1326
1327              Compilers typically pass directories containing language runtime
1328              libraries  and  default  library search paths when they invoke a
1329              linker.  These paths are implicit linker search directories  for
1330              the  compiler's  language.   CMake  automatically  detects these
1331              directories for each language and reports the  results  in  this
1332              variable.
1333
1334
1335       CMAKE_<LANG>_IMPLICIT_LINK_LIBRARIES
1336              Implicit link libraries and flags detected for language <LANG>.
1337
1338              Compilers  typically  pass  language  runtime  library names and
1339              other flags when they invoke a linker.  These flags are implicit
1340              link  options  for the compiler's language.  CMake automatically
1341              detects these libraries and flags for each language and  reports
1342              the results in this variable.
1343
1344
1345       CMAKE_<LANG>_LINKER_PREFERENCE
1346              Preference value for linker language selection.
1347
1348              The "linker language" for executable, shared library, and module
1349              targets is the language whose compiler will invoke  the  linker.
1350              The  LINKER_LANGUAGE  target  property sets the language explic‐
1351              itly.  Otherwise, the linker language is that whose linker pref‐
1352              erence value is highest among languages compiled and linked into
1353              the target.  See also the  CMAKE_<LANG>_LINKER_PREFERENCE_PROPA‐
1354              GATES variable.
1355
1356
1357       CMAKE_<LANG>_LINKER_PREFERENCE_PROPAGATES
1358              True  if  CMAKE_<LANG>_LINKER_PREFERENCE  propagates across tar‐
1359              gets.
1360
1361              This is used when CMake selects a linker language for a  target.
1362              Languages  compiled  directly into the target are always consid‐
1363              ered.  A language compiled into static libraries linked  by  the
1364              target is considered if this variable is true.
1365
1366
1367       CMAKE_<LANG>_LINK_EXECUTABLE
1368              Rule variable to link and executable.
1369
1370              Rule variable to link and executable for the given language.
1371
1372
1373       CMAKE_<LANG>_OUTPUT_EXTENSION
1374              Extension for the output of a compile for a single file.
1375
1376              This  is  the extension for an object file for the given <LANG>.
1377              For example .obj for C on Windows.
1378
1379
1380       CMAKE_<LANG>_PLATFORM_ID
1381              An internal variable subject to change.
1382
1383              This is used in determining  the  platform  and  is  subject  to
1384              change.
1385
1386
1387       CMAKE_<LANG>_SIZEOF_DATA_PTR
1388              Size of pointer-to-data types for language <LANG>.
1389
1390              This  holds  the size (in bytes) of pointer-to-data types in the
1391              target platform ABI.  It is defined  for  languages  C  and  CXX
1392              (C++).
1393
1394
1395       CMAKE_<LANG>_SOURCE_FILE_EXTENSIONS
1396              Extensions of source files for the given language.
1397
1398              This  is  the  list  of  extensions for a given languages source
1399              files.
1400
1401
1402       CMAKE_COMPILER_IS_GNU<LANG>
1403              True if the compiler is GNU.
1404
1405              If the selected <LANG> compiler is the GNU compiler then this is
1406              TRUE, if not it is FALSE.
1407
1408
1409       CMAKE_Fortran_MODDIR_DEFAULT
1410              Fortran default module output directory.
1411
1412              Most  Fortran  compilers write .mod files to the current working
1413              directory.  For those that do not, this is set to "."  and  used
1414              when the Fortran_MODULE_DIRECTORY target property is not set.
1415
1416
1417       CMAKE_Fortran_MODDIR_FLAG
1418              Fortran flag for module output directory.
1419
1420              This  stores  the  flag  needed  to  pass  the value of the For‐
1421              tran_MODULE_DIRECTORY target property to the compiler.
1422
1423
1424       CMAKE_Fortran_MODOUT_FLAG
1425              Fortran flag to enable module output.
1426
1427              Most Fortran compilers write .mod files  out  by  default.   For
1428              others, this stores the flag needed to enable module output.
1429
1430
1431       CMAKE_INTERNAL_PLATFORM_ABI
1432              An internal variable subject to change.
1433
1434              This  is  used in determining the compiler ABI and is subject to
1435              change.
1436
1437
1438       CMAKE_USER_MAKE_RULES_OVERRIDE_<LANG>
1439              Specify a CMake file that  overrides  platform  information  for
1440              <LANG>.
1441
1442              This       is      a      language-specific      version      of
1443              CMAKE_USER_MAKE_RULES_OVERRIDE loaded only  when  enabling  lan‐
1444              guage <LANG>.
1445
1446
1448       Copyright  2000-2009  Kitware,  Inc., Insight Software Consortium.  All
1449       rights reserved.
1450
1451
1452       Redistribution and use in source and binary forms, with or without mod‐
1453       ification,  are  permitted  provided  that the following conditions are
1454       met:
1455
1456
1457       Redistributions of source code must retain the above copyright  notice,
1458       this list of conditions and the following disclaimer.
1459
1460
1461       Redistributions  in  binary  form  must  reproduce  the above copyright
1462       notice, this list of conditions and the  following  disclaimer  in  the
1463       documentation and/or other materials provided with the distribution.
1464
1465
1466       Neither  the  names  of Kitware, Inc., the Insight Software Consortium,
1467       nor the names of their contributors may be used to endorse  or  promote
1468       products derived from this software without specific prior written per‐
1469       mission.
1470
1471
1472       THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
1473       IS"  AND  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
1474       TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTIC‐
1475       ULAR  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
1476       CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,  INCIDENTAL,  SPECIAL,
1477       EXEMPLARY,  OR  CONSEQUENTIAL  DAMAGES  (INCLUDING, BUT NOT LIMITED TO,
1478       PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;  LOSS  OF  USE,  DATA,  OR
1479       PROFITS;  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
1480       LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,  OR  TORT  (INCLUDING
1481       NEGLIGENCE  OR  OTHERWISE)  ARISING  IN  ANY WAY OUT OF THE USE OF THIS
1482       SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1483
1484

SEE ALSO

1486       The following resources are available to get help using CMake:
1487
1488
1489       Home Page
1490              http://www.cmake.org
1491
1492              The primary starting point for learning about CMake.
1493
1494
1495       Frequently Asked Questions
1496              http://www.cmake.org/Wiki/CMake_FAQ
1497
1498              A Wiki is provided containing answers to frequently asked  ques‐
1499              tions.
1500
1501
1502       Online Documentation
1503              http://www.cmake.org/HTML/Documentation.html
1504
1505              Links to available documentation may be found on this web page.
1506
1507
1508       Mailing List
1509              http://www.cmake.org/HTML/MailingLists.html
1510
1511              For  help  and  discussion  about using cmake, a mailing list is
1512              provided at cmake@cmake.org. The list  is  member-post-only  but
1513              one  may  sign  up  on the CMake web page. Please first read the
1514              full documentation at http://www.cmake.org before posting  ques‐
1515              tions to the list.
1516
1517
1518       Summary of helpful links:
1519
1520
1521         Home: http://www.cmake.org
1522         Docs: http://www.cmake.org/HTML/Documentation.html
1523         Mail: http://www.cmake.org/HTML/MailingLists.html
1524         FAQ:  http://www.cmake.org/Wiki/CMake_FAQ
1525
1526
1527
1528
1529cmake 2.8.4                     March 31, 2011                    cmakevars(1)
Impressum