CMAKE_NINJA_OUTPUT_PATH_PREFIXΒΆ

Added in version 3.6.

Tell the Ninja Generators to add a prefix to every output path in build.ninja. A trailing slash is appended to the prefix, if missing.

This is useful when the generated ninja file is meant to be embedded as a subninja file into a super ninja project. For example, the command:

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

generates a build directory with its top-level (CMAKE_BINARY_DIR) in super-build-dir/sub. The path to the build directory ends in the output path prefix. This makes it suitable for use in a separately-written super-build-dir/build.ninja file with a directive like this:

subninja sub/build.ninja

The auto-regeneration rule in super-build-dir/build.ninja must have an order-only dependency on sub/build.ninja.

Added in version 3.27: The Ninja Multi-Config generator supports this variable.

Note

When CMAKE_NINJA_OUTPUT_PATH_PREFIX is set, the project generated by CMake cannot be used as a standalone project. No default targets are specified.

The value of CMAKE_NINJA_OUTPUT_PATH_PREFIX must match one or more path components at the end of CMAKE_BINARY_DIR, or the behavior is undefined. However, this requirement is not checked automatically.