CMAKE_NINJA_OUTPUT_PATH_PREFIX

3.6 版本新增。

告诉 Ninja 生成器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 *末尾* 的一个或多个路径组件,否则行为是未定义的。但是,此要求不会自动检查。