aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/markdown/Reference-manual.md6
-rw-r--r--docs/markdown/snippets/custom_target_console_pool.md13
2 files changed, 19 insertions, 0 deletions
diff --git a/docs/markdown/Reference-manual.md b/docs/markdown/Reference-manual.md
index db8eed1..9f49831 100644
--- a/docs/markdown/Reference-manual.md
+++ b/docs/markdown/Reference-manual.md
@@ -244,6 +244,12 @@ following.
this argument is set to true, Meson captures `stdout` and writes it
to the target file. Note that your command argument list may not
contain `@OUTPUT@` when capture mode is active.
+- `console` keyword argument conflicts with `capture`, and is meant
+ for commands that are resource-intensive and take a long time to
+ finish. With the Ninja backend, setting this will add this target
+ to [Ninja's `console` pool](https://ninja-build.org/manual.html#_the_literal_console_literal_pool),
+ which has special properties such as not buffering stdout and
+ serializing all targets in this pool.
- `command` command to run to create outputs from inputs. The command
may be strings or the return value of functions that return file-like
objects such as [`find_program()`](#find_program),
diff --git a/docs/markdown/snippets/custom_target_console_pool.md b/docs/markdown/snippets/custom_target_console_pool.md
new file mode 100644
index 0000000..097b008
--- /dev/null
+++ b/docs/markdown/snippets/custom_target_console_pool.md
@@ -0,0 +1,13 @@
+## New kwarg `console` for `custom_target()`
+
+This keyword argument conflicts with `capture`, and is meant for commands
+that are resource-intensive and take a long time to finish. With the Ninja
+backend, setting this will add this target to [Ninja's `console`
+pool](https://ninja-build.org/manual.html#_the_literal_console_literal_pool),
+which has special properties such as not buffering stdout and serializing all
+targets in this pool.
+
+The primary use-case for this is to be able to run external package managers
+such as `cargo` to produce build artifacts. Without setting this, the user does
+not receive any feedback about what the package manager is doing, which can
+take a very long time to download and build packages.