{namespace buck.project}

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


{call buck.command}
{param overview}
Generates the configuration files for an IDE to build the project using that
IDE.

<p>

Currently, only IntelliJ is supported.

<p>

This command processes all of the {call buck.project_config /} rules across all
of the BUCK files and uses them to generate the configuration files for an IDE.

<p>

In the case of IntelliJ, the generated files include:

<ul>
  <li>
    {sp}<code>.idea/libraries&#x2F;*.xml</code>, each of which defines a library
    in IntelliJ. A library always corresponds to
    a {call buck.prebuilt_jar /}.
  </li>
  <li>
    {sp}<code>.iml</code> files, each of which defines a module in IntelliJ. An
    {sp}<code>.iml</code> file will be created in each directory with
    a <a href="{ROOT}concept/build_file.html"><code>BUCK</code></a> file that
    has a {call buck.project_config /}.
    A module can depend on other modules, as well as libraries.
  </li>
  <li>
    {sp}<code>.idea/modules.xml</code>, which lists all of the IntelliJ modules
    in the project.
  </li>
</ul>

<p>

Therefore, running <code>buck project</code> creates all of the above files for
IntelliJ in-place in the repository. This is unlike other Buck commands that
generate outputs in separate directories that will be deleted by
running <a href="{ROOT}command/clean.html"><code>buck clean</code></a>.

<p>

Note that all files generated by <code>buck project</code> should be listed in
{sp}<code>.gitignore</code>.

{/param}

{param params}
None.
{/param}

{/call}

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