0c55729c13
Since commit 5f5c92b9 (VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdev, 2013-11-13) the VS generators have known how to lookup the locations of their build tools directly. Expose this information to CMake language code by defining new variables to hold the paths to these tools.
56 lines
2.2 KiB
ReStructuredText
56 lines
2.2 KiB
ReStructuredText
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 Makefile generators set this to ``make``, ``gmake``, or
|
|
a generator-specific tool (e.g. ``nmake`` for "NMake Makefiles").
|
|
|
|
These generators store ``CMAKE_MAKE_PROGRAM`` in the CMake cache
|
|
so that it may be edited by the user.
|
|
|
|
* The 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 Xcode generator sets this to ``xcodebuild`` (or possibly an
|
|
otherwise undocumented ``cmakexbuild`` wrapper implementing some
|
|
workarounds).
|
|
|
|
This generator stores ``CMAKE_MAKE_PROGRAM`` in the CMake cache
|
|
so that it may be edited by the user.
|
|
|
|
* The Visual Studio generators set this to the full path to
|
|
``MSBuild.exe`` (VS >= 10), ``devenv.com`` (VS 7,8,9),
|
|
``VCExpress.exe`` (VS Express 8,9), or ``msdev.exe`` (VS 6).
|
|
(See also variables
|
|
:variable:`CMAKE_VS_MSBUILD_COMMAND`,
|
|
:variable:`CMAKE_VS_DEVENV_COMMAND`, and
|
|
:variable:`CMAKE_VS_MSDEV_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 ``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.
|