CMAKE_MAKE_PROGRAM

可以启动本机生成系统的工具。其值可以是可执行文件的完整路径或工具名称(如果它预计在 PATH 中)。

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

  • Makefile 生成器 将其设置为 makegmake 或生成器特定的工具(如 nmake 用于 NMake Makefiles)。

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

  • Ninja 生成器将其设置为 ninja

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

  • Xcode 生成器将其设置为 xcodebuild

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

    为了与 3.2 之前的 CMake 版本兼容,如果用户或项目将 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)。

    为了兼容 3.0 之前的 CMake 版本,如果用户或项目明确地将 CMAKE_MAKE_PROGRAM 添加到 CMake 缓存,则 CMake 会尽可能使用指定的值。

  • Green Hills MULTI 生成器将此值设置为 gbuild.exe(Windows)gbuild(Linux) 的完整路径,具体取决于所使用的工具集。

    一旦生成器为此变量初始化了特定值,那么更改此值就会产生未定义的行为。

CMAKE_MAKE_PROGRAM 变量已设置为由项目代码使用。 cmake --buildctest --build-and-test 工具也使用此值来启动本机构建进程。