{namespace buck.build}

/***/
{template .soyweb}
  {call buck.page}
    {param title: 'buck build' /}
    {param content}


{call buck.command}
{param overview}
Builds one or more specified targets.

<p>

As Buck is a build system, this is the most commonly used command in
Buck. To build a rule, pass its target to buck build:

<pre>buck build /&#x2F;java/com/example/app:amazing</pre>

Buck will build the rule and print the location of the generated
file(s) to the console.
{/param}

{param params}
{call buck.param}
  {param name: 'num-threads' /}
  {param desc}

  The number of threads that buck should use when executing the
  build. This defaults to 1.25 times the number of processors in the
  system (on systems with hyperthreading, this means that each core is
  counted twice). The number of threads to use for building can also
  be set by adding a "<code>threads</code>" key to the{sp}
  "<code>build</code>" section of the <code>.buckconfig</code> file.

  The order of precedence for setting the number of builds threads
  (from highest to lowest) is: command line option,{sp}
  <code>.buckconfig</code> setting, default value.

  The number of active threads may not always be equal to this
  argument.
 {/param}
{/call}

{call buck.param}
  {param name: 'verbose' /}
  {param alias: 'v'/}
  {param desc}
  How verbose logging to the console should be, with 1 as the minimum
  and 10 as the most verbose.
  {/param}
{/call}

{call buck.param}
  {param name: 'build-dependencies' /}
  {param alias: 'b'/}
  {param desc}
  How to handle including dependencies when building.  Valid values are:
  <ul>
    <li><code>TRANSITIVE</code>: Rules will compile against all of their
    transitive dependencies when building.
    <li><code>WARN_ON_TRANSITIVE</code>: Rules will first try to compile against
    only their first order dependencies, and should that fail will build again
    including their transitive dependencies and show a warning.
    <li><code>FIRST_ORDER_ONLY</code>:  Rules will only compile against their
    first order dependencies (e.g. dependencies listed in the
    {sp}<code>deps</code> field of their rule).
  </ul>
  {/param}
{/call}

{/param}

{/call}

    {/param}  // content
  {/call} // buck.page
{/template}
