CMAKE_NINJA_OUTPUT_PATH_PREFIX — CMake 4.0.3-dirty Documentation

# 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.