diff options
author | Evan Martin <martine@danga.com> | 2013-04-10 17:03:55 (GMT) |
---|---|---|
committer | Evan Martin <martine@danga.com> | 2013-04-10 17:03:55 (GMT) |
commit | ec6b0e7af9a2605538b6265e66adfe75bdc019f7 (patch) | |
tree | a92b812cce563a3e7d66c3e567d07a58a83d2fb3 /doc/manual.asciidoc | |
parent | 8c0d41c7e1b4ebb8b183a9e5eae52c90d99bd196 (diff) | |
download | Ninja-ec6b0e7af9a2605538b6265e66adfe75bdc019f7.zip Ninja-ec6b0e7af9a2605538b6265e66adfe75bdc019f7.tar.gz Ninja-ec6b0e7af9a2605538b6265e66adfe75bdc019f7.tar.bz2 |
move pool docs down under "more details"
The earlier section is a tutorial-style overview. The latter section
is for side features like phony rules and header dependencies. Pools
fit in with the latter.
Diffstat (limited to 'doc/manual.asciidoc')
-rw-r--r-- | doc/manual.asciidoc | 111 |
1 files changed, 55 insertions, 56 deletions
diff --git a/doc/manual.asciidoc b/doc/manual.asciidoc index 40c4d7e..aa5644d 100644 --- a/doc/manual.asciidoc +++ b/doc/manual.asciidoc @@ -403,62 +403,6 @@ If the top-level Ninja file is specified as an output of any build statement and it is out of date, Ninja will rebuild and reload it before building the targets requested by the user. -Pools -~~~~~ - -_Available since Ninja 1.1._ - -Pools allow you to allocate one or more rules or edges a finite number -of concurrent jobs which is more tightly restricted than the default -parallelism. - -This can be useful, for example, to restrict a particular expensive rule -(like link steps for huge executables), or to restrict particular build -statements which you know perform poorly when run concurrently. - -Each pool has a `depth` variable which is specified in the build file. -The pool is then referred to with the `pool` variable on either a rule -or a build statement. - -No matter what pools you specify, ninja will never run more concurrent jobs -than the default parallelism, or the number of jobs specified on the command -line (with `-j`). - ----------------- -# No more than 4 links at a time. -pool link_pool - depth = 4 - -# No more than 1 heavy object at a time. -pool heavy_object_pool - depth = 1 - -rule link - ... - pool = link_pool - -rule cc - ... - -# The link_pool is used here. Only 4 links will run concurrently. -build foo.exe: link input.obj - -# A build statement can be exempted from its rule's pool by setting an -# empty pool. This effectively puts the build statement back into the default -# pool, which has infinite depth. -build other.exe: link input.obj - pool = - -# A build statement can specify a pool directly. -# Only one of these builds will run at a time. -build heavy_object1.obj: cc heavy_obj1.cc - pool = heavy_object_pool -build heavy_object2.obj: cc heavy_obj2.cc - pool = heavy_object_pool - ----------------- - - Generating Ninja files from code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -644,6 +588,61 @@ rule cc command = cl /showIncludes -c $in /Fo$out ---- +Pools +~~~~~ + +_Available since Ninja 1.1._ + +Pools allow you to allocate one or more rules or edges a finite number +of concurrent jobs which is more tightly restricted than the default +parallelism. + +This can be useful, for example, to restrict a particular expensive rule +(like link steps for huge executables), or to restrict particular build +statements which you know perform poorly when run concurrently. + +Each pool has a `depth` variable which is specified in the build file. +The pool is then referred to with the `pool` variable on either a rule +or a build statement. + +No matter what pools you specify, ninja will never run more concurrent jobs +than the default parallelism, or the number of jobs specified on the command +line (with `-j`). + +---------------- +# No more than 4 links at a time. +pool link_pool + depth = 4 + +# No more than 1 heavy object at a time. +pool heavy_object_pool + depth = 1 + +rule link + ... + pool = link_pool + +rule cc + ... + +# The link_pool is used here. Only 4 links will run concurrently. +build foo.exe: link input.obj + +# A build statement can be exempted from its rule's pool by setting an +# empty pool. This effectively puts the build statement back into the default +# pool, which has infinite depth. +build other.exe: link input.obj + pool = + +# A build statement can specify a pool directly. +# Only one of these builds will run at a time. +build heavy_object1.obj: cc heavy_obj1.cc + pool = heavy_object_pool +build heavy_object2.obj: cc heavy_obj2.cc + pool = heavy_object_pool + +---------------- + Ninja file reference -------------------- |