blob: be9cf1f315db32b9ce35234bc3eac503756728e2 [file] [log] [blame]
{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}