CMAKE_MAKE_PROGRAM

用于启动本地构建系统的工具。该值可以是可执行文件的完整路径,也可以只是一个工具名称(如果它存在于 PATH 中)。

所选工具取决于用于配置项目的 CMAKE_GENERATOR

  • Makefile 生成器将此设置为 makegmake 或特定于生成器的工具(例如,对于 NMake Makefiles,则为 nmake)。

    这些生成器将 CMAKE_MAKE_PROGRAM 存储在 CMake 缓存中,以便用户可以编辑它。

  • Ninja 生成器将此设置为 ninja

    此生成器将 CMAKE_MAKE_PROGRAM 存储在 CMake 缓存中,以便用户可以编辑它。

  • Xcode 生成器将此设置为 xcodebuild

    此生成器倾向于在构建时查找构建工具,而不是提前将 CMAKE_MAKE_PROGRAM 存储在 CMake 缓存中。这是因为 xcodebuild 很容易找到。

    为了与 CMake 3.2 之前的版本兼容,如果用户或项目显式将 CMAKE_MAKE_PROGRAM 添加到 CMake 缓存中,那么 CMake 将使用指定的该值。

  • Visual Studio 生成器将此设置为 MSBuild.exedevenv.com 的完整路径。(另请参阅变量 CMAKE_VS_MSBUILD_COMMANDCMAKE_VS_DEVENV_COMMAND。)

    这些生成器倾向于在构建时查找构建工具,而不是提前将 CMAKE_MAKE_PROGRAM 存储在 CMake 缓存中。这是因为这些工具是版本特定的,并且可以使用 Visual Studio Installer 定位。这也很有必要,因为正确的构建工具可能取决于项目内容(例如,Visual Studio 的 Intel Fortran 插件需要 devenv.com 来构建其 .vfproj 项目文件,即使通常首选 MSBuild.exe 来支持 CMAKE_GENERATOR_TOOLSET)。

    为了与 CMake 3.0 之前的版本兼容,如果用户或项目显式将 CMAKE_MAKE_PROGRAM 添加到 CMake 缓存中,那么 CMake 将在可能的情况下使用指定的值。

  • Green Hills MULTI 生成器将根据使用的工具集,将此设置为 gbuild.exe(Windows)gbuild(Linux) 的完整路径。

    一旦生成器为该变量初始化了特定值,更改该值将产生未定义的行为。

CMAKE_MAKE_PROGRAM 变量被设置为供项目代码使用。该值也被 cmake --buildctest --build-and-test 工具用于启动本地构建过程。