blob: 254396d9f6100b371d26dd4c6d74c7af95dccd8c [file] [log] [blame]
{namespace buck.project}
/***/
{template .soyweb}
{call buck.page}
{param title: 'buck project' /}
{param description}
A command that generates the configuration files for an IDE to build the
project using the IDE.
{/param}
{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}
{call buck.param}
{param name: 'targets' /}
{param desc}
The list of targets to build a project for to generate a slice of a project containing only the
code for the specified targets. This is useful for large repositories.
{/param}
{/call}
{call buck.param}
{param name: '--without-tests' /}
{param desc}
Indicates that Buck should build a project slice without tests (the default is to include any
tests that reference the targets in the project with <code>source_under_test</code>).
{/param}
{/call}
{/param}
{/call}
{/param} // content
{/call} // buck.page
{/template}