CMAKE_MAKE_PROGRAM | |
------------------ | |
Tool that can launch the native build system. | |
The value may be the full path to an executable or just the tool | |
name if it is expected to be in the ``PATH``. | |
The tool selected depends on the :variable:`CMAKE_GENERATOR` used | |
to configure the project: | |
* The :ref:`Makefile Generators` set this to ``make``, ``gmake``, or | |
a generator-specific tool (e.g. ``nmake`` for :generator:`NMake Makefiles`). | |
These generators store ``CMAKE_MAKE_PROGRAM`` in the CMake cache | |
so that it may be edited by the user. | |
* The :generator:`Ninja` generator sets this to ``ninja``. | |
This generator stores ``CMAKE_MAKE_PROGRAM`` in the CMake cache | |
so that it may be edited by the user. | |
* The :generator:`Xcode` generator sets this to ``xcodebuild`` (or possibly an | |
otherwise undocumented ``cmakexbuild`` wrapper implementing some | |
workarounds). | |
This generator prefers to lookup the build tool at build time | |
rather than to store ``CMAKE_MAKE_PROGRAM`` in the CMake cache | |
ahead of time. This is because ``xcodebuild`` is easy to find, | |
the ``cmakexbuild`` wrapper is needed only for older Xcode versions, | |
and the path to ``cmakexbuild`` may be outdated if CMake itself moves. | |
For compatibility with versions of CMake prior to 3.2, if | |
a user or project explicitly adds ``CMAKE_MAKE_PROGRAM`` to | |
the CMake cache then CMake will use the specified value. | |
* The :ref:`Visual Studio Generators` set this to the full path to | |
``MSBuild.exe`` (VS >= 10), ``devenv.com`` (VS 7,8,9), or | |
``VCExpress.exe`` (VS Express 8,9). | |
(See also variables | |
:variable:`CMAKE_VS_MSBUILD_COMMAND` and | |
:variable:`CMAKE_VS_DEVENV_COMMAND`. | |
These generators prefer to lookup the build tool at build time | |
rather than to store ``CMAKE_MAKE_PROGRAM`` in the CMake cache | |
ahead of time. This is because the tools are version-specific | |
and can be located using the Windows Registry. It is also | |
necessary because the proper build tool may depend on the | |
project content (e.g. the Intel Fortran plugin to VS 10 and 11 | |
requires ``devenv.com`` to build its ``.vfproj`` project files | |
even though ``MSBuild.exe`` is normally preferred to support | |
the :variable:`CMAKE_GENERATOR_TOOLSET`). | |
For compatibility with versions of CMake prior to 3.0, if | |
a user or project explicitly adds ``CMAKE_MAKE_PROGRAM`` to | |
the CMake cache then CMake will use the specified value if | |
possible. | |
* The :generator:`Green Hills MULTI` generator sets this to ``gbuild``. | |
If a user or project explicitly adds ``CMAKE_MAKE_PROGRAM`` to | |
the CMake cache then CMake will use the specified value. | |
The ``CMAKE_MAKE_PROGRAM`` variable is set for use by project code. | |
The value is also used by the :manual:`cmake(1)` ``--build`` and | |
:manual:`ctest(1)` ``--build-and-test`` tools to launch the native | |
build process. |