mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 12:49:36 -06:00
Ninja: Support embedding of CMake as subninja project
Add a `CMAKE_NINJA_OUTPUT_PATH_PREFIX` variable. When it is set, CMake generates a `build.ninja` file suitable for embedding into another ninja project potentially generated by an alien generator.
This commit is contained in:
committed by
Brad King
parent
038e7716e5
commit
8a862a4d4b
27
Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
Normal file
27
Help/variable/CMAKE_NINJA_OUTPUT_PATH_PREFIX.rst
Normal file
@@ -0,0 +1,27 @@
|
||||
CMAKE_NINJA_OUTPUT_PATH_PREFIX
|
||||
------------------------------
|
||||
|
||||
Set output files path prefix for the :generator:`Ninja` generator.
|
||||
|
||||
Every output files listed in the generated ``build.ninja`` will be
|
||||
prefixed by the contents of this variable (a trailing slash is
|
||||
appended 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, a ninja build file generated with a command
|
||||
like::
|
||||
|
||||
cd top-build-dir/sub &&
|
||||
cmake -G Ninja -DCMAKE_NINJA_OUTPUT_PATH_PREFIX=sub/ path/to/source
|
||||
|
||||
can be embedded in ``top-build-dir/build.ninja`` with a directive like
|
||||
this::
|
||||
|
||||
subninja sub/build.ninja
|
||||
|
||||
The ``auto-regeneration`` rule in ``top-build-dir/build.ninja`` must have an
|
||||
order-only dependency on ``sub/build.ninja``.
|
||||
|
||||
.. 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.
|
||||
Reference in New Issue
Block a user