1.. title:: CMake Reference Documentation
2
3Introduction
4############
5
6CMake is a tool to manage building of source code.  Originally, CMake was
7designed as a generator for various dialects of ``Makefile``, today
8CMake generates modern buildsystems such as ``Ninja`` as well as project
9files for IDEs such as Visual Studio and Xcode.
10
11CMake is widely used for the C and C++ languages, but it may be used to
12build source code of other languages too.
13
14People encountering CMake for the first time may have different initial
15goals.  To learn how to build a source code package downloaded from the
16internet, start with the :guide:`User Interaction Guide`.
17This will detail the steps needed to run the :manual:`cmake(1)` or
18:manual:`cmake-gui(1)` executable and how to choose a generator, and
19how to complete the build.
20
21The :guide:`Using Dependencies Guide` is aimed at developers
22wishing to get started using a third-party library.
23
24For developers starting a project using CMake, the :guide:`CMake Tutorial`
25is a suitable starting point.  The :manual:`cmake-buildsystem(7)`
26manual is aimed at developers expanding their knowledge of maintaining
27a buildsystem and becoming familiar with the build targets that
28can be represented in CMake.  The :manual:`cmake-packages(7)` manual
29explains how to create packages which can easily be consumed by
30third-party CMake-based buildsystems.
31
32Command-Line Tools
33##################
34
35.. toctree::
36   :maxdepth: 1
37
38   /manual/cmake.1
39   /manual/ctest.1
40   /manual/cpack.1
41
42Interactive Dialogs
43###################
44
45.. toctree::
46   :maxdepth: 1
47
48   /manual/cmake-gui.1
49   /manual/ccmake.1
50
51Reference Manuals
52#################
53
54.. toctree::
55   :maxdepth: 1
56
57   /manual/cmake-buildsystem.7
58   /manual/cmake-commands.7
59   /manual/cmake-compile-features.7
60   /manual/cmake-developer.7
61   /manual/cmake-env-variables.7
62   /manual/cmake-file-api.7
63   /manual/cmake-generator-expressions.7
64   /manual/cmake-generators.7
65   /manual/cmake-language.7
66   /manual/cmake-modules.7
67   /manual/cmake-packages.7
68   /manual/cmake-policies.7
69   /manual/cmake-presets.7
70   /manual/cmake-properties.7
71   /manual/cmake-qt.7
72   /manual/cmake-server.7
73   /manual/cmake-toolchains.7
74   /manual/cmake-variables.7
75   /manual/cpack-generators.7
76
77.. only:: not man
78
79 Guides
80 ######
81
82 .. toctree::
83    :maxdepth: 1
84
85    /guide/tutorial/index
86    /guide/user-interaction/index
87    /guide/using-dependencies/index
88    /guide/importing-exporting/index
89    /guide/ide-integration/index
90
91.. only:: html or text
92
93 Release Notes
94 #############
95
96 .. toctree::
97    :maxdepth: 1
98
99    /release/index
100
101.. only:: html
102
103 Index and Search
104 ################
105
106 * :ref:`genindex`
107 * :ref:`search`
108