CMAKE_NINJA_OUTPUT_PATH_PREFIX

3.6 版本新增。

指示 Ninja Generators 在 `build.ninja` 中的每个输出路径前添加一个前缀。如果缺少,则会在前缀后附加一个斜杠。

当生成的 ninja 文件旨在作为 subninja 文件嵌入到一个超级 ninja 项目中时,这很有用。例如,命令

cd super-build-dir &&
cmake -G Ninja -S /path/to/src -B sub -DCMAKE_NINJA_OUTPUT_PATH_PREFIX=sub/
#                                 ^^^---------- these match -----------^^^

生成一个构建目录,其顶层(CMAKE_BINARY_DIR)位于 `super-build-dir/sub`。构建目录的路径以输出路径前缀结尾。这使其适用于一个单独编写的 `super-build-dir/build.ninja` 文件,其中包含类似以下的指令:

subninja sub/build.ninja

`super-build-dir/build.ninja` 中的 `auto-regeneration` 规则必须对 `sub/build.ninja` 有一个 order-only 依赖项。

在 3.27 版本中添加: Ninja Multi-Config 生成器支持此变量。

注意

当设置了 `CMAKE_NINJA_OUTPUT_PATH_PREFIX` 时,CMake 生成的项目不能作为独立项目使用。没有指定默认目标。

`CMAKE_NINJA_OUTPUT_PATH_PREFIX` 的值必须匹配 CMAKE_BINARY_DIR末尾的一个或多个路径组件,否则行为未定义。然而,此要求不会自动检查。