CMake/Help/index.rst
Stephen Kelly bd681fee7a Help: Add guides for user interaction
Add some prose to the documentation index page to guide readers to the
major manuals and guides.

Add a new "User Interaction Guide" to help the class of new user
who wishes to build a project with CMake for the first time, such as
after cloning a repo from a git repository.

Add a new "Using Dependencies Guide" to help the class of new
user who wishes to consume a SDK provided by a third party and needs a
starting point.  This is a different type of user to the user who wishes
to create their own project from scratch (addressed by the
`cmake-buildsystem(7)` manual) as each will encounter needs for
information discovery in a different order.
2020-01-13 11:04:55 -05:00

105 lines
2.5 KiB
ReStructuredText

.. title:: CMake Reference Documentation
Introduction
############
CMake is a tool to manage building of source code. Originally, CMake was
designed as a generator for various dialects of ``Makefile``, today
CMake generates modern buildsystems such as ``Ninja`` as well as project
files for IDEs such as Visual Studio and Xcode.
CMake is widely used for the C and C++ languages, but it may be used to
build source code of other languages too.
People encountering CMake for the first time may have different initial
goals. To learn how to build a source code package downloaded from the
internet, start with the :guide:`User Interaction Guide`.
This will detail the steps needed to run the :manual:`cmake(1)` or
:manual:`cmake-gui(1)` executable and how to choose a generator, and
how to complete the build.
The :guide:`Using Dependencies Guide` is aimed at developers
wishing to get started using a third-party library.
For developers starting a project using CMake, the :guide:`CMake Tutorial`
is a suitable starting point. The :manual:`cmake-buildsystem(7)`
manual is aimed at developers expanding their knowledge of maintaining
a buildsystem and becoming familiar with the build targets that
can be represented in CMake. The :manual:`cmake-packages(7)` manual
explains how to create packages which can easily be consumed by
third-party CMake-based buildsystems.
Command-Line Tools
##################
.. toctree::
:maxdepth: 1
/manual/cmake.1
/manual/ctest.1
/manual/cpack.1
Interactive Dialogs
###################
.. toctree::
:maxdepth: 1
/manual/cmake-gui.1
/manual/ccmake.1
Reference Manuals
#################
.. toctree::
:maxdepth: 1
/manual/cmake-buildsystem.7
/manual/cmake-commands.7
/manual/cmake-compile-features.7
/manual/cmake-developer.7
/manual/cmake-env-variables.7
/manual/cmake-file-api.7
/manual/cmake-generator-expressions.7
/manual/cmake-generators.7
/manual/cmake-language.7
/manual/cmake-modules.7
/manual/cmake-packages.7
/manual/cmake-policies.7
/manual/cmake-properties.7
/manual/cmake-qt.7
/manual/cmake-server.7
/manual/cmake-toolchains.7
/manual/cmake-variables.7
/manual/cpack-generators.7
.. only:: not man
Guides
######
.. toctree::
:maxdepth: 1
/guide/tutorial/index
/guide/user-interaction/index
/guide/using-dependencies/index
.. only:: html or text
Release Notes
#############
.. toctree::
:maxdepth: 1
/release/index
.. only:: html
Index and Search
################
* :ref:`genindex`
* :ref:`search`