{namespace ndk_library}

/***/
{template .soyweb}
  {call buck.page}
    {param title: 'ndk_library()' /}
    {param prettify: true /}
    {param description}
      A rule that is used to define a set of C/C++ files, an Android.mk and an
      Application.mk file that are used by the Android NDK's ndk-build tool to
      generate one or more shared objects.
    {/param}
    {param content}

{call buck.rule}
{param status: 'FROZEN' /}
{param overview} 
An <code>ndk_library()</code> is used to define a set of C/C++ files,
an <code>Android.mk</code> and an <code>Application.mk</code> file that
are used by the NDK's <code>ndk-build</code> tool to generate one or more shared
objects.
{/param}

{param args}

{call buck.arg}
  {param name: 'name' /}
  {param desc}
  The name of the rule.
  {/param}
{/call}

{call buck.arg}
  {param name: 'deps' /}
  {param default : '[]' /}
  {param desc}
  List of build targets to build before this rule.
  {/param}
{/call}

{call buck.arg}
  {param name: 'flags' /}
  {param default : '[]' /}
  {param desc}
  Array of strings passed verbatim to <code>ndk-build</code>. Normally
  this is not needed, but in some cases you may want to put something
  here. For example, this can be used to build the libraries in debug
  mode (<code>NDK_DEBUG=1</code>) or set the number of jobs spawned by
  {sp}<code>ndk-build</code> (by default, the same as the number of
  cores).
  {/param}
{/call}

{call buck.arg}
  {param name: 'is_asset' /}
  {param default: 'False' /}
  {param desc}
  Normally native shared objects end up in a directory in the root of the APK
  named <code>lib/</code>. If this parameter is set to <code>True</code>, then
  these objects are placed in <code>assets/lib/</code>. Placing shared objects in
  a non-standard location prevents Android from extracting them to the device's
  internal storage.
  {/param}
{/call}

{call buck.visibility_arg /}

{/param} // close args

{param furtherexp}
<p>
An <code>android_binary()</code> that includes this library will
aggregate all of the native shared objects into a directory in the
root of the APK named <code>lib/</code> or <code>assets/lib/</code>.
<p>
Unlike the default invocation of <code>ndk-build</code>,
{sp}<code>buck</code> will put all intermediate files and build output
into a subdirectory under <code>buck-out/gen</code>.
<p>
Also, because <code>ndk-build</code> and <code>Android.mk</code> do not
expose the necessary dependency information, <code>buck</code> assumes
that all files with the following extensions are part of the build:
{sp}<code>c, cpp, cc, cxx, h, hpp, mk</code>.

{/param}

{/call} // close buck.rule

    {/param}
  {/call}
{/template}
