a3c8b7c8a51859863b3983931df99d76d701f33a
[platform/upstream/cmake.git] / Help / variable / CMAKE_MAKE_PROGRAM.rst
1 CMAKE_MAKE_PROGRAM
2 ------------------
3
4 Tool that can launch the native build system.
5 The value may be the full path to an executable or just the tool
6 name if it is expected to be in the ``PATH``.
7
8 The tool selected depends on the :variable:`CMAKE_GENERATOR` used
9 to configure the project:
10
11 * The :ref:`Makefile Generators` set this to ``make``, ``gmake``, or
12   a generator-specific tool (e.g. ``nmake`` for :generator:`NMake Makefiles`).
13
14   These generators store ``CMAKE_MAKE_PROGRAM`` in the CMake cache
15   so that it may be edited by the user.
16
17 * The :generator:`Ninja` generator sets this to ``ninja``.
18
19   This generator stores ``CMAKE_MAKE_PROGRAM`` in the CMake cache
20   so that it may be edited by the user.
21
22 * The :generator:`Xcode` generator sets this to ``xcodebuild``.
23
24   This generator prefers to lookup the build tool at build time
25   rather than to store ``CMAKE_MAKE_PROGRAM`` in the CMake cache
26   ahead of time.  This is because ``xcodebuild`` is easy to find.
27
28   For compatibility with versions of CMake prior to 3.2, if
29   a user or project explicitly adds ``CMAKE_MAKE_PROGRAM`` to
30   the CMake cache then CMake will use the specified value.
31
32 * The :ref:`Visual Studio Generators` set this to the full path to
33   ``MSBuild.exe`` (VS >= 10), ``devenv.com`` (VS 7,8,9), or
34   ``VCExpress.exe`` (VS Express 8,9).
35   (See also variables
36   :variable:`CMAKE_VS_MSBUILD_COMMAND` and
37   :variable:`CMAKE_VS_DEVENV_COMMAND`.
38
39   These generators prefer to lookup the build tool at build time
40   rather than to store ``CMAKE_MAKE_PROGRAM`` in the CMake cache
41   ahead of time.  This is because the tools are version-specific
42   and can be located using the Windows Registry.  It is also
43   necessary because the proper build tool may depend on the
44   project content (e.g. the Intel Fortran plugin to VS 10 and 11
45   requires ``devenv.com`` to build its ``.vfproj`` project files
46   even though ``MSBuild.exe`` is normally preferred to support
47   the :variable:`CMAKE_GENERATOR_TOOLSET`).
48
49   For compatibility with versions of CMake prior to 3.0, if
50   a user or project explicitly adds ``CMAKE_MAKE_PROGRAM`` to
51   the CMake cache then CMake will use the specified value if
52   possible.
53
54 * The :generator:`Green Hills MULTI` generator sets this to the full
55   path to ``gbuild.exe(Windows)`` or ``gbuild(Linux)`` based upon
56   the toolset being used.
57
58   Once the generator has initialized a particular value for this
59   variable, changing the value has undefined behavior.
60
61 The ``CMAKE_MAKE_PROGRAM`` variable is set for use by project code.
62 The value is also used by the :manual:`cmake(1)` ``--build`` and
63 :manual:`ctest(1)` ``--build-and-test`` tools to launch the native
64 build process.