CMAKE_NINJA_OUTPUT_PATH_PREFIX

在 3.6 版本中加入。

告诉 Ninja Generatorsbuild.ninja 中为每个输出路径添加前缀。如果缺少,则在前缀后附加一个尾部斜杠。

当生成的 ninja 文件旨在作为 subninja 文件嵌入到 super ninja 项目中时,这非常有用。例如,命令

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

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

subninja sub/build.ninja

super-build-dir/build.ninja 中的 auto-regeneration 规则必须具有对 sub/build.ninja 的仅顺序依赖。

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

注意

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

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